达梦数据库存储加密

时间:2024-04-12 20:53:32

为了防止用户直接通过数据文件获取用户信息,DM数据库提供了多种存储加密方法,对数据进行加密,以达到使明文存储为密文的目的。

下文就加密方式、加密算法做个介绍。

1透明加密

在建表时对应加密列使用透明加密模式(AUTO),**生成、**管理和加解密过程由数据库管理系统自动完成,用户不可见,即用户本身是感受不到数据是经过了加密处理的。经加密存储文件中该列值变为密文。

透明加密操作:
创建用户USER1、USER2,并对这些用户授权,使其拥有对表的操作权限。

以USER1身份登录数据库服务器,创建一张表T1,建立三个列,选中“姓名”列设置列加密属性,选择透明加密,创建表成功,向T1表中的“姓名”列插入数据“Tom”,用二进制编辑工具查看数据文件,数据“Tom”已被加密成密文,是看不到的。
达梦数据库存储加密

2半透明加密

在建表时对加密列使用半透明加密模式(MANUAL),加密口令即为创建用户时设置的半透明加密口令(Figure 2),用户可以调用系统函数来设置、获取会话的加密口令,当会话的加密口令与半透明加密口令一致时,才可以看到明文。因此,设置为半透明加密的用户可以看到自己插入的数据,而其他用户是看不到的。
达梦数据库存储加密
半透明加密操作:
创建用户USER1、USER2,并对这些用户授权,使其拥有对表的操作权限。

以USER1身份登录数据库服务器,创建一张表T1,建立三个列,选中“部门”列设置列加密属性。分别通过USER1、 USER2用户向表T1各插入一条数据,USER1、USER2只能看到自己插入的数据,彼此的数据互为不可见密文。
达梦数据库存储加密

3非透明加密

在读写数据时调用系统加密函数直接对数据进行加解密,该过程需要用户自主完成,所以叫做非透明。具体提供的加密函数,见《DM7_SQL语言使用手册》中“存储加密函数”有详细列表。

非透明加密操作:
直接在SQL语句中使用,如:
达梦数据库存储加密

4备份加密

在创建备份的时候,如果勾选“完全数据加密”选项,备份文件就会被加密,使用文本编辑器打开备份文件,查看到的数据都为密文。
达梦数据库存储加密

5密码算法选择

DM数据库自带了一些加密算法,如果用户想使用自己的加密算法,只需要使用DM提供的加密引擎接口封装自己的算法(参见《DM7程序员手册》 第11 章DM 加密引擎接口编程指南),并通过create crypto方法来引用对应的引擎文件,然后通过alter crypto方法添加相应的算法即可。

软加密
加密算法可以以软件为载体,存放于动态链接库文件之中。

硬加密
加密算法可以以硬件为载体,存放在加密卡等硬件中,在系统运行时实时进行加解密运算。

6总结

存储加密在保证数据文件安全性的同时,也会带来一定的性能影响,不同的加密算法、加密方式对性能的影响各有不同,用户需要根据自己的需求来决定是否进行加密以及加密算法、加密方式的选择。