问题是如何使用 Oracle JDBC Thin 驱动程序并仅在 URL 中指定加密来强制加密?
据了解,我们需要将Oracle Net参数设置oracle.net.encryption_client为required。(参考链接)
供参考:我们目前以 TNS 格式指定 Oracle JDBC URL,例如:
DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = tcp)(HOST = myora1.corp.net)(PORT = 1521))
(ADDRESS = (PROTOCOL = tcp)(HOST = myora2.corp.net)(PORT = 1521)))
(FAILOVER=ON)
(CONNECT_DATA = (SERVER = dedicated)(SERVICE_NAME = foobar))
Run Code Online (Sandbox Code Playgroud)
它会转换为以下 JDBC URL 字符串:
jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = tcp)(HOST = myora1.corp.net)(PORT = 1521))(ADDRESS = (PROTOCOL = tcp)(HOST = myora2.corp.net)(PORT = 1521)))(FAILOVER=ON)(CONNECT_DATA = (SERVER = dedicated)(SERVICE_NAME = foobar)))
Run Code Online (Sandbox Code Playgroud)
在回答之前,您应该了解以下信息:
encryption_client那么可以使用该 URL 格式来代替..只要它允许我们指定相同的参数,例如 ADDRESS_LIST。我之前看到过这个问题,但没有收到正确的答案。
理想情况下,任何答案都应包含指向 Oracle 文档的指针。
如注释中所述,从 Oracle JDBC 驱动程序 v21 开始,您可以使用Security该thin方法的选项,如下所示:
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=1521))(CONNECT_DATA= (SERVICE_NAME=servicename))(Security=(ENCRYPTION_LEVEL=REQUIRED)))
Run Code Online (Sandbox Code Playgroud)
因此,您不需要属性,并且可以在连接字符串中嵌入所需的加密级别。
您还可以限制加密算法以增加安全性,例如:
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=1521))(CONNECT_DATA= (SERVICE_NAME=servicename))(Security=(ENCRYPTION_CLIENT=REQUIRED)(ENCRYPTION_TYPES_CLIENT=AES256)))
Run Code Online (Sandbox Code Playgroud)
我们说的是,连接必须加密,并且必须使用(当前)可用的最强算法进行加密。
看:
| 归档时间: |
|
| 查看次数: |
3315 次 |
| 最近记录: |