赞
踩
·达梦数据库透明加密方法,可以分为全库加密、表空间加密、日志加密。
·全库加密和日志加密,只有在初始化实例的时候配置生效。
·配置了全库加密,则所有表空间也是加密的,不允许表空间再单独加密。
·DB用户使用加密表空间,则DB用户登录数据库创建的表和数据也是加密的(仅针对写入此加密表空间的数据进行加密,假如此DB用户创建表时,额外指定了一个不是加密的表空间,那这个数据也不会进行加密)。
·如果实例初始化的时候没有加密,后期新增表空间时,可以根据业务数据重要性,单独对某个表空间进行加密。同时创建对应的DB用户,使用此表空间;或者创建表时,指定用此加密表空间。
/home/dmdba/dm/dmdbms/bin/dminit PATH=/dbdata/dmdata PAGE_SIZE=32 LOG_SIZE=2048
--创建加密表空间
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";
--验证表空间是否加密
达梦管理工具-表空间-右键-属性,看到如下信息就是加密了
--创建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';
/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
启动库后查询确认数据库是否加密:
select SF_GET_ENCRYPT_NAME();
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
使用strings命令,对redo log 或者dbf数据文件进行验证
无加密示例-英文可以正常显示
加密示例-英文输出的是密文,不可读,实现了加密
通过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/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。