問題是如何使用 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))
轉換為以下 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)))
在回答之前,您應該了解以下內容:
- 我們不能使用屬性,因為這是第三方應用程式。我們可以設定的只是 URL 字串。
- 我們不能使用樂觀加密(Oracle 中的默認設定)。出于監管原因,我們需要保證我們獲得加密連接。我們需要從客戶端強制執行此操作。(我們需要保護自己免受服務器端潛在的錯誤配置)
- “加密”是指使用 Oracle 的內置加密方法,稱為Oracle Advanced Security,而不是 TLS。后者當然也是一種選擇,但涉及更多(證書馬戲團),并且 Oracle Advanced Security 被我們的安全專家視為“足夠好”。
- 我們目前在 URL 中使用 TNS 描述符格式。如果另一種格式允許指定所述引數,
encryption_client那么可以使用該 URL 格式代替 .. 只要它允許我們指定相同的格式,例如 ADDRESS_LIST。 - 我們可以替換正在使用的 JDBC 驅動程式,這意味著如果需要,我們可以自由使用最新版本。
我之前在 SO 上看到過這個問題,但從未收到過正確的答案。
理想情況下,任何答案都應包含指向 Oracle 檔案的指標。
uj5u.com熱心網友回復:
如評論中所述,從 v21 開始,您可以使用Security該thin方法的選項,如下所示:
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=5521))(CONNECT_DATA= (SERVICE_NAME=servicename))(Security=(ENCRYPTION_LEVEL=REQUIRED)))
因此,您不需要屬性,并且可以在連接字串中嵌入所需的加密級別。
加密 JDBC 字串
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/327524.html
下一篇:按日期間隔查找重復項
