mysql,oracle,sqlserver开启内置加密

对mysql开启表级加密,oracle开启表空间加密,sqlserver开启库加密

DB配置加密

db-mysql

mysql使用主密钥对数据库表进行加密,表一级加密

先决条件

1.参考mysql官方文档 InnoDB静态数据加密去看看

配置

1.检查版本号()

mysql> SELECT @@version;
+-----------+
| @@version |
+-----------+
| 5.7.33    |
+-----------+
1 row in set (0.00 sec)

2.进入mysql安装路径(可以尝试其他路径,我尝试过未成功)

[root@clear mysql]# chmod -R 750 keyring/
[root@clear mysql]# chown -R mysql.mysql keyring 
#给定权限后立马运行此句可能会出现报错,-bash: chown -R mysql.mysql keyring: command not found

3.sql 安装kering 插件(文件配置时需要重启生效,但是不能保证用户会重启,所以应该配置临时插件,即时生效,系统重启,sql命令配置失效)

mysql> install plugin keyring_file soname 'keyring_file.so';#配置此句时会出现语法报错,建议手敲
Query OK, 0 rows affected (0.00 sec)

4.为keyring插件指定目录

mysql> set global keyring_file_data='/var/lib/mysql/keyring/keyring';
Query OK, 0 rows affected (0.00 sec)

5,配置my.cnf文件(防止命令配置的插件重启失效)

[mysqld]
early-plugin-load=keyring_file.so
keyring_file_data= /var/lib/mysql/keyring/keyring
#
sql

1.查看版本

select version()

3.查看加密插件状态

mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
    ->        FROM INFORMATION_SCHEMA.PLUGINS
    ->        WHERE PLUGIN_NAME LIKE 'keyring%';
+--------------+---------------+
| PLUGIN_NAME  | PLUGIN_STATUS |
+--------------+---------------+
| keyring_file | ACTIVE        |
+--------------+---------------+
1 row in set (0.00 sec)

4.开启关闭加密

use 'database'
alter table aaa encryption='n'
alter table aaa encryption='y'

db-oracle

oracle使用加密的表空间,通过对表的迁移达到加密的目的,空间级加密

加密先决条件

1.参考oracle官方文档 使用透明数据加密保护存储的数据 去看看

配置加密

理解图例

在这里插入图片描述

文件配置
1.创建钱包
[root@localhost ~]# su - oracle
[oracle@localhost orcl]$ mkdir $ORACLE_BASE/admin/orcl/wallet  #创建钱包
[oracle@localhost wallet]$ cd $ORACLE_BASE/
[oracle@localhost oracle]$ pwd
/u01/app/oracle
[oracle@localhost oracle]$ find $ORACLE_BASE/ -name sqlnet.ora  #找到sqlnet.ora文件
/u01/app/oracle/product/12.0.4/db_1/network/admin/samples/sqlnet.ora
[oracle@localhost oracle]$ vi /u01/app/oracle/product/12.0.4/db_1/network/admin/samples/sqlnet.ora
#------------------------------------------------------------加入如下内容
ENCRYPTION_WALLET_LOCATION=
    (SOURCE=
        (METHOD=FILE)
        (METHOD_DATA=
        (DIRECTORY=$ORACLE_BASE/admin/orcl/wallet)
        )
)
2启动加密(sys)
alter system set encryption key identified by "123456";
-- 开启关闭钱包
alter system set wallet open identified by "123456";
alter system set wallet close identified by "123456";
3.判断钱包开启
select * from v$encryption_wallet;
注意

进行表空间迁移时,索引会失效,所以要进行索引重构

db-sqlserver

sqlserver是使用加密主密钥先加密证书,在通过证书加密数据库,是库一级加密

加密先决条件

1.sqlserver官方文档 透明数据加密 (TDE)去看看

理解图例

在这里插入图片描述
在这里插入图片描述

加密配置

1.切换mast主数据库(注释内容为辅助查询内容)

use master;
-- 删除主数据库
-- drop MASTER KEY ; 
-- 查询数据库主密钥
--  select name,is_master_key_encrypted_by_server from sys.databases

2.根据自定义密码设置主密钥

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '密码';

3.创建证书

CREATE CERTIFICATE 证书名 WITH SUBJECT = '测试主题';
-- 删除加密证书
-- DROP CERTIFICATE TDE_Server_Certificate

4.备份证书(第一种可行,其他待查)(以上只使用一次)

BACKUP MASTER KEY TO FILE = '位置\文件名' ENCRYPTION BY PASSWORD = '密码'

5.切换用户数据库

use 用户数据库;

6.根据加密算法和证书创建数据库密钥

CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE 证书名;
-- 删除密钥
-- DROP DATABASE ENCRYPTION KEY;   
-- 修改加密库加密证书
-- ALTER DATABASE ENCRYPTION KEY ENCRYPTION BY SERVER CERTIFICATE HTDE
-- 查看证书		
-- SELECT  * FROM    sys.certificates

7.开启数据库加密

ALTER DATABASE 用户数据库 SET ENCRYPTION ON;

– 查看数据库是否加密

SELECT  is_encrypted FROM    sys.databases WHERE   name = '数据库名'

– 查询加密库

-- 查询加密库
-- SELECT *  FROM sys.dm_database_encryption_keys WHERE encryption_state = 3 

– 查看数据库是否加密

SELECT  is_encrypted FROM    sys.databases WHERE   name = '数据库名'

– 查询加密库

-- 查询加密库
-- SELECT *  FROM sys.dm_database_encryption_keys WHERE encryption_state = 3 
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SQL Server、MySQLOracle都是关系型数据库管理系统(RDBMS),它们有许多相似的功能,但也有一些重要的区别。 1. 开发公司:SQL Server由Microsoft开发,MySQLOracle公司开发,Oracle则由Oracle公司开发。 2. 价格:SQL Server和Oracle都是商业软件,需要购买许可证才能使用。MySQL是开源软件,可以免费使用。 3. 可扩展性:Oracle是最可扩展的RDBMS之一,可以处理非常大的数据库。MySQL也很可扩展,但在处理大型数据集时可能需要更多的优化。SQL Server也具有可扩展性,但在处理大型数据集时可能需要更多的硬件资源。 4. 操作系统支持:Oracle可以在多个操作系统上运行,包括Windows、Linux、Unix等。SQL Server只能在Windows上运行,而MySQL可以在多个操作系统上运行,包括Windows、Linux、Unix等。 5. 安全性:Oracle和SQL Server都提供高级安全功能,如加密和身份验证。MySQL的安全功能不如这两个商业软件完善。 6. 执行速度:Oracle和SQL Server在处理大量数据时执行速度较快。MySQL在处理小型数据集时表现很好,但在处理大型数据集时可能需要更多的优化。 7. 存储过程和触发器:Oracle和SQL Server支持存储过程和触发器,而MySQL仅支持存储过程。 综上所述,这三个RDBMS都是强大的数据库系统,但在一些方面有所不同。在选择使用哪种数据库系统时,需要考虑到具体的需求和使用场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值