默认情况下,客户端和数据库服务器之间数据传输是明文的,通过抓包工具可以看到,不管是客户端的请求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,加入以下配置
三、注意事项:
服务器和客户端配置“不正确”会导致以下几种情况
加密失效
连接失败
具体见下表
另外,记得配置后,再使用抓包工具验证下数据是否加密成功。
加密对性能是有影响的,需要平衡、评估。
具体情况请参考官方文档,各个参数有详细说明。