参数功能
COMM_ENCRYPT_NAME
用于控制应用层消息通信加密:指定加密算法名后,客户端与服务器之间的消息包将加密传输。
参数取值与默认值
取值 | 含义 |
---|---|
空字符串 | 不启用应用层加密(默认值) |
有效算法名 | 启用加密(如 RC4 , AES256CBC 等) |
无效算法名 | 自动使用默认算法 DESCFB (需确保 DESCFB 在 V$CIPHERS 中存在) |
注:有效算法名需满足:
- 在动态视图
V$CIPHERS
中存在;- 算法类型为分组加密(
CYTTYPE=1
)或流加密(CYTTYPE=2
);- 非填充模式(
WORKMODE
不能为ECBNOPAD
或CBC_NOPAD
)。
SELECT CYT_NAME FROM V$CIPHERS
WHERE (CYT_TYPE=1 OR CYT_TYPE=2)
AND WORK_MODE NOT IN ('ECBNOPAD', 'CBC_NOPAD');
常见算法:RC4
、AES256CBC
、DES_CFB
等。
-- 示例:启用 RC4 加密
SF_SET_SYSTEM_PARA_VALUE('COMM_ENCRYPT_NAME', 'R4', 1, 2);
关键说明:
- 此为静态参数,需重启数据库生效。
- 若算法名错误(如拼写错误),系统自动使用
DES_CFB
。
SELECT PARA_NAME, PARA_VALUE
FROM V$DM_INI
WHERE PARA_NAME = 'COMM_ENCRYPT_NAME';
[dmdba@dj01 ~]$ cd $DM_HOME/bin [dmdba@dj01 bin]$ ./DmServiceDMSERVER restart Stopping DmServiceDMSERVER: [ OK ] Starting DmServiceDMSERVER: [ OK ]
验证通信加密生效的方法
tcpdump
(yum install tcpdump
)Wireshark
操作步骤:
SF_SET_SYSTEM_PARA_VALUE('COMM_ENCRYPT_NAME', 'NULL', 1, 2); ---调整为不加密模式
----重启数据库服务
DmServiceDMSERVER restart
验证数据库加密类型
SELECT PARA_NAME, PARA_VALUE
FROM V$DM_INI
WHERE PARA_NAME = 'COMM_ENCRYPT_NAME';
当前无加密参数
使用tcpdump进行抓取
创建测试表和测试数据,同时查看tcpdump抓取信息
结果:抓包数据可见明文SQL语句
SF_SET_SYSTEM_PARA_VALUE('COMM_ENCRYPT_NAME', 'RC4', 1, 2); ---调整为加密模式
----重启数据库服务
DmServiceDMSERVER restart
验证数据库加密类型
SELECT PARA_NAME, PARA_VALUE
FROM V$DM_INI
WHERE PARA_NAME = 'COMM_ENCRYPT_NAME';
加密类型调整为RC4
创建测试表和测试数据,同时查看tcpdump抓取信息
结果:抓包数据显示乱码或密文(如[,[\mI,j!BJ3823]
),无SQL明文。
对比两次抓包结果,加密后数据包内容不可读(非明文),通信加密生效。
文章
阅读量
获赞