文件首頁
MySQL Connector/J 開發人員指南
相關文件 下載本手冊
PDF (美式信紙) - 1.2Mb
PDF (A4) - 1.2Mb


6.3.5 安全性

  • paranoid

    採取措施以防止錯誤訊息中洩露敏感資訊,並在可能時清除保存敏感資料的資料結構?

    預設值 false
    自版本起 3.0.1
  • serverRSAPublicKeyFile

    用於「sha256_password」驗證的伺服器 RSA 公開金鑰檔案路徑。如果未指定,則會從伺服器擷取公開金鑰。

    自版本起 5.1.31
  • allowPublicKeyRetrieval

    允許特殊的交握來回行程,以直接從伺服器取得 RSA 公開金鑰。

    預設值 false
    自版本起 5.1.31
  • sslMode

    依預設,網路連線會進行 SSL 加密;此屬性允許關閉安全連線,或選擇不同的安全層級。允許的值如下:「DISABLED」- 建立未加密的連線;「PREFERRED」- 如果伺服器啟用加密連線,則建立加密連線,否則回復為未加密的連線;「REQUIRED」- 如果伺服器啟用安全連線,則建立安全連線,否則失敗;「VERIFY_CA」- 類似於「REQUIRED」,但另外針對已設定的憑證授權單位 (CA) 憑證驗證伺服器 TLS 憑證;「VERIFY_IDENTITY」- 類似於「VERIFY_CA」,但另外驗證伺服器憑證是否符合嘗試連線的主機。

    此屬性取代了已淘汰的舊版屬性「useSSL」、「requireSSL」和「verifyServerCertificate」,這些屬性仍然被接受,但如果未明確設定「sslMode」,則會轉換為「sslMode」的值:「useSSL=false」會轉換為「sslMode=DISABLED」;{「useSSL=true」、「requireSSL=false」、「verifyServerCertificate=false」} 會轉換為「sslMode=PREFERRED」;{「useSSL=true」、「requireSSL=true」、「verifyServerCertificate=false」} 會轉換為「sslMode=REQUIRED」;{「useSSL=true」、「verifyServerCertificate=true」} 會轉換為「sslMode=VERIFY_CA」。對於「sslMode=VERIFY_IDENTITY」沒有等效的舊版設定。請注意,對於所有伺服器版本,「sslMode」的預設設定為「PREFERRED」,它等同於「useSSL=true」、「requireSSL=false」和「verifyServerCertificate=false」的舊版設定,這與 Connector/J 8.0.12 和更早版本在某些情況下的預設設定不同。繼續使用舊版屬性並依賴其舊預設設定的應用程式應進行審閱。

    如果明確設定了「sslMode」,則會忽略舊版屬性。如果未明確設定「sslMode」或「useSSL」,則會套用「sslMode=PREFERRED」的預設設定。

    預設值 PREFERRED
    自版本起 8.0.13
  • trustCertificateKeyStoreUrl

    受信任根憑證金鑰存放區的 URL。

    如果未指定,則屬性「fallbackToSystemTrustStore」會決定是否使用系統範圍的信任存放區。

    自版本起 5.1.0
  • trustCertificateKeyStoreType

    受信任根憑證的金鑰存放區類型。

    Null 或空白表示使用預設值,即「JKS」。JVM 支援的標準金鑰存放區類型為「JKS」和「PKCS12」,您的環境可能會根據 JVM 安裝和可用的安全性提供者而有更多可用類型。

    預設值 JKS
    自版本起 5.1.0
  • trustCertificateKeyStorePassword

    受信任根憑證金鑰存放區的密碼。

    自版本起 5.1.0
  • fallbackToSystemTrustStore

    是否在未設定「trustCertificateKeyStoreUrl」的值時,回復為使用系統範圍的預設信任存放區,或透過系統屬性「javax.net.ssl.trustStore*」定義的信任存放區。

    預設值 true
    自版本起 8.0.22
  • clientCertificateKeyStoreUrl

    用戶端憑證金鑰存放區的 URL。

    如果未指定,則屬性「fallbackToSystemKeyStore」會決定是否使用系統範圍的金鑰存放區。

    自版本起 5.1.0
  • clientCertificateKeyStoreType

    用戶端憑證的金鑰存放區類型。

    Null 或空白表示使用預設值,即「JKS」。JVM 支援的標準金鑰存放區類型為「JKS」和「PKCS12」,您的環境可能會根據 JVM 安裝和可用的安全性提供者而有更多可用類型。

    預設值 JKS
    自版本起 5.1.0
  • clientCertificateKeyStorePassword

    用戶端憑證金鑰存放區的密碼。

    自版本起 5.1.0
  • fallbackToSystemKeyStore

    是否在未設定「clientCertificateKeyStoreUrl」的值時,回復為使用透過系統屬性「javax.net.ssl.keyStore*」定義的系統範圍的金鑰存放區。

    預設值 true
    自版本起 8.0.22
  • tlsCiphersuites

    建立安全連線時,會覆寫已啟用以在基礎 SSL Socket 上使用的密碼套件。當使用外部 JSSE 提供者或指定與 MySQL 伺服器和已使用 JVM 相容的密碼套件時,可能需要此設定。在 8.0.28 版之前,此屬性名為「enabledSSLCipherSuites」,它仍作為別名。

    自版本起 5.1.35
  • tlsVersions

    建立安全連線時允許的 TLS 協定清單。覆寫基礎 SSL Socket 中已啟用的 TLS 協定。這可用於將連線限制為特定的 TLS 版本,並藉此避免 TLS 協商回退。允許的預設值為「TLSv1.2」和「TLSv1.3」。在 8.0.28 版之前,此屬性名為「enabledTLSProtocols」,它仍作為別名。

    自版本起 8.0.8
  • fipsCompliantJsse

    使 Connector/J 與以 FIPS 模式執行的 JSSE 相容。如果 JSSE 設定為以 FIPS 模式執行,且 Connector/J 在建立安全連線時收到錯誤「FIPS 模式:只能使用 SunJSSE TrustManagers」,則應設定為「true」。如果設定為「true」,則在建立安全連線時,驅動程式會如同將「sslMode」設定為「VERIFY_CA」或「VERIFY_IDENTITY」,也就是說,所有安全連線都至少需要伺服器憑證驗證,為此,必須設定信任存放區或啟用回復到系統範圍的信任存放區。

    預設值 false
    自版本起 8.1.0
  • KeyManagerFactoryProvider

    提供「javax.net.ssl.KeyManagerFactory」實作的 Java 安全性提供者名稱。如果未指定,則使用預設提供者。

    自版本起 8.1.0
  • trustManagerFactoryProvider

    提供 'javax.net.ssl.TrustManagerFactory' 實作的 Java 安全性提供者的名稱。如果未指定,則使用預設的提供者。

    自版本起 8.1.0
  • keyStoreProvider

    提供 'java.security.KeyStore' 實作的 Java 安全性提供者的名稱,該實作支援使用 'clientCertificateKeyStoreType' 和 'trustCertificateKeyStoreType' 指定的金鑰儲存類型。如果未指定,則使用預設的提供者。

    自版本起 8.1.0
  • sslContextProvider

    提供 'javax.net.ssl.SSLContext' 實作的 Java 安全性提供者的名稱。如果未指定,則使用預設的提供者。

    自版本起 8.1.0
  • allowLoadLocalInfile

    驅動程式是否應允許使用 "LOAD DATA LOCAL INFILE ..."?

    設定為 "true" 會覆寫在 'allowLoadLocalInfileInPath' 中設定的任何路徑,允許從任何位置上傳檔案。

    預設值 false
    自版本起 3.0.3
  • allowLoadLocalInfileInPath

    啟用 "LOAD DATA LOCAL INFILE ..." 陳述式,但僅允許從指定路徑載入檔案。也允許子目錄中的檔案,但禁止超出此路徑的相對路徑或符號連結。

    自版本起 8.0.22
  • allowMultiQueries

    允許在一個陳述式中使用 ";" 來分隔多個查詢。此選項不影響 'addBatch()' 和 'executeBatch()' 方法,它們改為依賴 'rewriteBatchStatements'。

    預設值 false
    自版本起 3.1.1
  • allowUrlInLocalInfile

    驅動程式是否應允許在 "LOAD DATA LOCAL INFILE ..." 陳述式中使用 URL?

    預設值 false
    自版本起 3.1.4
  • requireSSL

    已棄用:請參閱 'sslMode' 屬性描述以了解詳細資訊。

    對於 8.0.12 及更早版本:如果 "useSSL=true",則要求伺服器支援 SSL 連線。

    預設值 false
    自版本起 3.1.0
  • useSSL

    已棄用:請參閱 'sslMode' 屬性描述以了解詳細資訊。

    對於 8.0.12 及更早版本:在與伺服器通訊時使用 SSL,當連線到 MySQL 5.5.45+、5.6.26+ 或 5.7.6+ 時,預設值為 "true",否則預設值為 "false"。

    對於 8.0.13 及更新版本:預設值為 "true"。

    預設值 true
    自版本起 3.0.2
  • verifyServerCertificate

    已棄用:請參閱 'sslMode' 屬性描述以了解詳細資訊。

    對於 8.0.12 及更早版本:如果 'useSSL' 設定為 "true",驅動程式是否應驗證伺服器的憑證?使用此功能時,應由 'clientCertificateKeyStore*' 屬性指定金鑰儲存參數,而不是系統屬性。當連線到 MySQL 5.5.45+、5.6.26+ 或 5.7.6+ 且 'useSSL' 未明確設定為 "true" 時,預設值為 "false"。否則預設值為 "true"。

    對於 8.0.13 及更新版本:預設值為 "false"。

    預設值 false
    自版本起 5.1.6