setEncrypt 方法 (SQLServerDataSource)
設定 Boolean 值,這個值會指出是否啟用 encrypt 屬性。
語法
public void setEncypt(boolean encrypt)
參數
encrypt
如果在用戶端與 SQL Server 之間啟用傳輸層安全性 (TLS) (先前稱為安全通訊端層 (SSL)) 加密,則為 true。 否則為 false。
備註
如果 encrypt 屬性已設為 true,則 Microsoft JDBC Driver for SQL Server 會確保 SQL Server 將針對用戶端與伺服器之間傳送的所有資料使用 TLS 加密,條件是伺服器上必須先安裝憑證。 預設值為 false。
JDBC Driver 會在嘗試建立 TLS 交握時偵測其要執行於哪一部 JAVA 虛擬機器 (JVM) 中。
如果 encrypt 屬性設定為 true,適用於 SQL Server 的 Microsoft JDBC 驅動程式就會使用 JVM 的預設 JSSE 安全性提供者來與 SQL Server 交涉 TLS 加密。 預設的安全性提供者可能不支援成功交涉 TLS 加密所需的所有功能。 例如,預設的安全性提供者可能不支援 SQL Server TLS/SSL 憑證中使用之 RSA 公開金鑰的大小。 在此情況下,預設的安全性提供者可能會引發錯誤,造成 JDBC 驅動程式中止連接。 若要解決這個問題,請執行下列其中之一:
利用 RSA 公開金鑰較小的伺服器憑證設定 SQL Server
設定 JVM 在「<java-home>/lib/security/java.security」安全性屬性檔中使用不同的 JSSE 安全性提供者
使用不同的 JVM
如果 encrypt 屬性未指定或設定為 false,則驅動程式將不會強制 SQL Server 支援 TLS 加密。 如果 SQL Server 執行個體未設定為強制 TLS 加密,則不使用任何加密即可建立連線。 如果 SQL Server 執行個體設定為強制 TLS 加密,則在正確設定的 JVM 上執行時,Microsoft JDBC Driver for SQL Server 將會自動啟用 TLS 加密,否則連線會終止,而且驅動程式會引發錯誤。