Java 试图在JDBC数据源上启用Oracle透明数据加密

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属性,以便为此连接启用透明数据加密 关于如何做到这一点,我有一些长篇大论,但由于我们

我正在尝试使用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属性,以便为此连接启用透明数据加密

关于如何做到这一点,我有一些长篇大论,但由于我们目前的软件架构,我几乎只能修改数据源连接字符串

 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
的默认值,将创建加密连接。

透明数据加密不需要对连接进行任何配置更改;您似乎是指网络数据加密,这是不同的。透明数据加密不需要对连接进行任何配置更改;您似乎指的是网络数据加密,这是不同的。