达梦数据库透明加密介绍

简述

·达梦数据库透明加密方法,可以分为全库加密、表空间加密、日志加密。

·全库加密和日志加密,只有在初始化实例的时候配置生效。

·配置了全库加密,则所有表空间也是加密的,不允许表空间再单独加密。

·DB用户使用加密表空间,则DB用户登录数据库创建的表和数据也是加密的(仅针对写入此加密表空间的数据进行加密,假如此DB用户创建表时,额外指定了一个不是加密的表空间,那这个数据也不会进行加密)。

·如果实例初始化的时候没有加密,后期新增表空间时,可以根据业务数据重要性,单独对某个表空间进行加密。同时创建对应的DB用户,使用此表空间;或者创建表时,指定用此加密表空间。

1、初始化实例时不加密

/home/dmdba/dm/dmdbms/bin/dminit PATH=/dbdata/dmdata  PAGE_SIZE=32   LOG_SIZE=2048

2、表空间单独加密

--创建加密表空间

create tablespace "TESTBKJ"  datafile '/home/dmdba/dm8/data/TEST_01/TESTBKJ.DBF' size 1024 autoextend on next 100 maxsize 10240 CACHE = NORMAL  encrypt with DES_ECB by "test1234";

指定的表空间加密算法可以是 DM 内部支持的加密算法(可通过查询动态视图 V$CIPHERS ),也可以是第三方加密算法。

--验证表空间是否加密

达梦管理工具-表空间-右键-属性,看到如下信息就是加密了

--创建DB用户指定默认表空间

create user "TEST" identified by "TEST123" limit session_per_user 20, failed_login_attemps 3,

password_lock_time 1, password_grace_time 10 default tablespace "TESTBKJ";  

--仅仅创建模式,属主为某个DB用户

CREATE SCHEMA "TEST2" AUTHORIZATION "TEST";  

--给DB用户授权

grant RESOURCE,PUBLIC,VTI,SOI,SVI to "TEST";

--验证DB用户默认表空间

select username,default_tablespace from dba_users where username='TEST'

3、初始化实例时全库加密

/home/dmdba/dm/dmdbms/bin/dminit PATH=/dbdata/dmdata EXTENT_SIZE=16 PAGE_SIZE=32 CASE_SENSITIVE=Y  LOG_SIZE=2048 ENCRYPT_NAME=OPENSSL_SM4_CFB_V1

指定的全库加密算法可以是 DM 内部支持的加密算法(可通过查询动态视图 V$CIPHERS ),也可以是第三方加密算法。

启动库后查询确认数据库是否加密:

select SF_GET_ENCRYPT_NAME();

4、初始化实例时全库加密,同时日志加密

DM7

/home/dmdba/dm/dmdbms/bin/dminit PATH=/dbdata/dmdata EXTENT_SIZE=16 PAGE_SIZE=32 CASE_SENSITIVE=Y  LOG_SIZE=2048 ENCRYPT_NAME=OPENSSL_SM4_CFB_V1  RLOG_ENC_FLAG=1

DM8

/home/dmdba/dm/dmdbms/bin/dminit PATH=/dbdata/dmdata EXTENT_SIZE=16 PAGE_SIZE=32 CASE_SENSITIVE=Y  LOG_SIZE=2048 ENCRYPT_NAME=OPENSSL_SM4_CFB_V1 RLOG_ENCRYPT_NAME=OPENSSL_SM4_CFB_V

指定的日志加密算法可以是 DM 内部支持的加密算法(可通过查询动态视图 V$CIPHERS ),也可以是第三方加密算法。

5、验证日志加密

方式一

使用strings命令,对redo log 或者dbf数据文件进行验证

无加密示例-英文可以正常显示

加密示例-英文输出的是密文,不可读,实现了加密

方式二(适用DM8)

通过dmrachk工具验证

DM8-无加密示例

DM8-加密示例

PS:DM8归档enc_flg为TRUE,说明加密。同时带来一个问题就是解密会失败“decrypt error”,打印:总计1 错误1,可能是dm8-dmrachk工具问题。

DM7示例

PS:DM7无加密的关键字“ENC”,故而无法验证;用DM8的bin,执行同样的命令,识别DM7的归档文件为错误。

仅供参考,如有不足,欢迎斧正。

更多资讯请上达梦技术社区了解: https://eco.dameng.com/

  • 23
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值