达梦数据库存储加密

本文介绍了DM数据库的存储加密方法,包括透明加密、半透明加密、非透明加密、备份加密及密码算法选择,旨在保护数据文件的安全性。不同的加密方式对性能的影响各异,用户需根据需求选择合适的加密算法。

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

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

1透明加密

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

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

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

2半透明加密

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

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

达梦数据库中使用 AES 加密,可以通过配置通信加密和字段加密两种方式来实现。以下分别介绍这两种使用方法: ### 1. 配置通信加密 达梦数据库支持通过 SSL 使用 AES 算法对通信进行加密。需要在服务端配置 `ENABLE_ENCRYPT` 和 `COMM_ENCRYPT_NAME` 参数以启用通信加密。例如,可以将 `COMM_ENCRYPT_NAME` 设置为 `AES128_ECB`、`AES128_CBC`、`AES128_CFB` 或 `AES128_OFB` 中的任意一种,客户端会根据服务端配置的加密方式与其通信[^1]。 需要注意的是,如果将 `COMM_ENCRYPT_NAME` 设置为 `AES192_ECB`、`AES192_CBC`、`AES192_CFB`、`AES192_OFB`、`AES256_ECB`、`AES256_CBC`、`AES256_CFB` 或 `AES256_OFB` 时,可能会出现“6061:通信加密协商失败”的错误。为避免此问题,建议优先选择 `AES128` 系列的算法[^2]。 ### 2. 使用字段加密 达梦数据库提供了字段级别的加密功能,支持使用 AES 算法对特定字段进行加密存储。例如,可以使用内置函数 `CFALGORITHMSENCRYPT` 对 `varchar` 类型字段进行加密。该函数包含三个参数:待加密的字段、加密算法编号和加密密钥。使用方法如下: ```sql CFALGORITHMSENCRYPT('test', 514, '测试口令') ``` 其中,`'test'` 是待加密的字段,`514` 表示使用的加密算法(如 AES),`'测试口令'` 是用于加密的密钥[^3]。 此外,还可以使用 `DBMS_CRYPTO` 包进行更灵活的加密和解密操作。例如,使用 `DBMS_CRYPTO.ENCRYPT_AES128`、`DBMS_CRYPTO.CHAIN_ECB` 和 `DBMS_CRYPTO.PAD_PKCS5` 选项组合实现 AES128 加密。解密时可使用 `DBMS_CRYPTO.DECRYPT` 函数,并确保字段值不是 `NULL` 或不符合加密格式的密文[^5]。 ### 3. 支持的加密算法 可以通过查询 `V$CIPHERS` 动态视图获取达梦数据库支持的加密算法列表,以确认当前环境中可用的 AES 加密模式[^1]。 ### 4. SSL 加密组件 如果使用 SSL 进行通信加密,还需要了解其相关组件,包括证书、证书颁发机构(CA)和加密算法。SSL 使用数字证书验证服务器身份,并使用 AES、RSA 等算法加密数据传输[^4]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值