默认情况下,客户端和数据库服务器之间数据传输是明文的,通过抓包工具可以看到,不管是客户端的请求sql(request sql),还是服务器的应答数据(response data),都是明文的,这在一些特殊的场景下是不安全的,所以可以使用oracle自带的安全组件,实现数据加密传输。

简要配置如下

一、目录/u01/app/oracle/product/11.2.0/db_1/network/admin下的sqlnet.ora文件中加入

SQLNET.ENCRYPTION_SERVER = REQUIRED
SQLNET.ENCRYPTION_TYPES_SERVER = RC4_256
SQLNET.CRYPTO_CHECKSUM_SERVER = REQUIRED

二、如果客户端使用的Druid连接管理,也就是JDBC,加入以下配置

Oracle 11g 传输加密配置

三、注意事项:

服务器和客户端配置“不正确”会导致以下几种情况

加密失效

连接失败

具体见下表

Oracle 11g 传输加密配置

另外,记得配置后,再使用抓包工具验证下数据是否加密成功。

加密对性能是有影响的,需要平衡、评估。

 

具体情况请参考官方文档,各个参数有详细说明。

相关文章: