当前位置:   article > 正文

达梦数据库透明加密介绍

达梦数据库透明加密介绍

简述

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

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

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

·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/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/508188
推荐阅读
相关标签
  

闽ICP备14008679号