Java 试图在JDBC数据源上启用Oracle透明数据加密
我正在尝试使用Oracle TDE通过以下连接字符串连接到JDBC数据源:Java 试图在JDBC数据源上启用Oracle透明数据加密,java,oracle,jdbc,tde,Java,Oracle,Jdbc,Tde,我正在尝试使用Oracle TDE通过以下连接字符串连接到JDBC数据源: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.0.1.101)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=SECUREDATA))) 是否有方法指定JDBC属性,以便为此连接启用透明数据加密 关于如何做到这一点,我有一些长篇大论,但由于我们
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.0.1.101)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=SECUREDATA)))
是否有方法指定JDBC属性,以便为此连接启用透明数据加密
关于如何做到这一点,我有一些长篇大论,但由于我们目前的软件架构,我几乎只能修改数据源连接字符串
Thin JDBC client
In this case, sqlnet.ora file is not read and taken into account; we have to set
properties on the connection.
For example:
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Properties props = new Properties();
props.put("oracle.net.encryption_client", "accepted");
props.put("oracle.net.encryption_types_client", "RC4_128");
props.put("user", "XXX");
props.put("password", "YYY");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@myhost:1521:mySID", props);
我的店铺在Oracle网络加密方面的10g体验是,它通过仅在服务器端进行此更改而起作用
SQLNET.ENCRYPTION_SERVER = required
SQLNET.ENCRYPTION_TYPES_SERVER = (list of acceptable crypto algorithms)
SQLNET.CRYPTO_SEED = [my seed value]
SQLNET.CRYPTO_CHECKSUM_SERVER = required
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER = (list of acceptable crypto algorithms)
由于
SQLNET.ENCRYPTION\u CLIENT
和SQLNET.CRYPTO\u CHECKSUM\u CLIENT
的默认值已被接受,因此将创建加密连接。我的商店使用Oracle网络加密的10g体验是,它仅在服务器端进行此更改即可工作:
SQLNET.ENCRYPTION_SERVER = required
SQLNET.ENCRYPTION_TYPES_SERVER = (list of acceptable crypto algorithms)
SQLNET.CRYPTO_SEED = [my seed value]
SQLNET.CRYPTO_CHECKSUM_SERVER = required
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER = (list of acceptable crypto algorithms)
由于接受了
SQLNET.ENCRYPTION\u CLIENT
和SQLNET.CRYPTO\u CHECKSUM\u CLIENT
的默认值,将创建加密连接。透明数据加密不需要对连接进行任何配置更改;您似乎是指网络数据加密,这是不同的。透明数据加密不需要对连接进行任何配置更改;您似乎指的是网络数据加密,这是不同的。