設定連線屬性

下載下載 JDBC 驅動程式

您可以使用各種方法指定連接字串屬性:

備註

屬性名稱需區分大小寫,而重複的屬性名稱將以下列順序解析:

  1. API 引數 (例如使用者及密碼)
  2. 屬性集合
  3. 連接字串中的最後一個實例也會允許屬性名稱有未知的值,而且 JDBC 驅動程式不會驗證它們的值是否區分大小寫。

容許同義字並會依序解析,如同是重複的屬性名稱一般。

屬性

下表列出 JDBC 驅動程式目前所有可用的連接字串屬性。

屬性
類型
預設
描述
aadSecurePrincipalId

String

null
(9.2 版 +) 當 authentication = ActiveDirectoryServicePrincipal 時, aadSecurePrincipalId 屬性會指定有效的 Azure Active Directory 安全用戶端識別碼。
aadSecurePrincipalSecret

String

null
(9.2 +) 當 authentication = ActiveDirectoryServicePrincipal 時, aadSecurePrincipalSecret 屬性會識別要用於 Active Directory 主體的密碼。
accessToken

String

null
(6.0 版 +) 使用此屬性,利用存取權杖連接到資料庫。 無法使用連線 URL 設定 accessToken
applicationIntent

String

讀寫
當連接到伺服器時, (6.0 版 +) 宣告應用程式工作負載類型。

可能的值為 ReadOnlyReadWrite

如需嚴重損壞修復的詳細資訊,請參閱 適用于高可用性和嚴重損壞修復的 JDBC 驅動程式支援
applicationName

String
[<=128 char]

null
如果未提供名稱,則為應用程式名稱或「Microsoft JDBC Driver for SQL Server」。

用以識別各種 SQL Server 分析與記錄工具中的特定應用程式。
驗證 (authentication)

String

NotSpecified
(6.0 版 +) 這個選擇性屬性會指出要用於連接的驗證方法。 可能的值為 ActiveDirectoryIntegratedActiveDirectoryPassword>activedirectorymsi (7.2 版 +) 、 ActiveDirectoryInteractive (9.2 +) 、 ActiveDirectoryServicePrincipal (9.2 版 +) 、 SqlPassword 和預設 NotSpecified

使用 ActiveDirectoryIntegrated (6.0 版 +) 連接到使用整合式 Windows 驗證的 SQL 資料庫。

使用 ActiveDirectoryPassword (6.0 版 +) 連接到使用 Azure AD 主體名稱和密碼的 SQL 資料庫。

使用 >activedirectorymsi (7.2 版 +) 從 Azure 資源內部連接至 SQL 資料庫。 例如,使用受控識別 (MSI) 驗證的 Azure 虛擬機器、App Service 或函數應用程式。

使用 ActiveDirectoryMSI 驗證模式時,驅動程式所支援的兩種受控識別類型為:
1.系統指派的受控識別:預設會使用此類型來取得 accessToken
2.使用者指派的受控識別:如果受控識別 (MSI) 的用戶端識別碼是以 msiClientId 連線屬性指定,則會使用此類型來取得 accessToken

使用 ActiveDirectoryInteractive 連接到使用互動式驗證流程的 SQL 資料庫。

使用 ActiveDirectoryServicePrincipal (9.2 +) 版本,以使用用戶端識別碼和服務主體身分識別的密碼連線到 SQL 資料庫。

使用 SqlPassword 連接到使用使用者 名稱 / 使用者密碼 屬性的 SQL 資料庫。

如果不需要這些驗證方法,請使用 NotSpecified

重要事項: 如果驗證設定為 ActiveDirectoryIntegrated,則必須安裝下列兩個程式庫: jdbc 驅動程式套件中提供的 mssql jdbc_auth <version> - <arch>.dll () 和 Azure Active Directory SQL Server ( ADAL.DLL) 的驗證程式庫。 您可以從Microsoft ODBC Driver for SQL ServerMicrosoft OLE DB Driver for SQL Server安裝 ADAL。 JDBC 驅動程式只支援 ADAL.DLL 的 1.0.2028.318 版和更高版本

注意: 當 authentication 屬性設定為 NotSpecified 以外的任何值時,驅動程式預設會使用傳輸層安全性 (TLS) (先前稱為安全通訊端層 (SSL)) 加密。

如需有關如何設定 Azure Active Directory 驗證的詳細資訊,請參閱使用 Azure Active Directory 驗證連接到 SQL Database
authenticationScheme

String

NativeAuthentication
表示您希望應用程式使用的整合式安全性種類。 可能的值為 JAVAKerberosNTLM (7.4 版 +) 和預設 NativeAuthentication

NativeAuthentication 會讓驅動程式在 Windows 上載入 mssql-jdbc_auth-<version>-<arch>.dll (例如 mssql-jdbc_auth-8.2.2.x64.dll),用於取得整合式驗證資訊。

(使用驅動程式版本 6.0 到 7.4 時,載入的原生驗證程式庫名稱為 sqljdbc_auth.dll)。

使用 authenticationScheme=JavaKerberos 時,您必須在 serverNameserverSpn 屬性中指定完整網域名稱 (FQDN)。 否則,會發生錯誤 (Kerberos 資料庫中找不到伺服器)。

如需使用 authenticationScheme = JAVAKerberos 的詳細資訊,請參閱 使用 Kerberos 整合式驗證連接到 SQL Server

使用 authenticationScheme = NTLM 時,您必須使用 [網域domainName ] 屬性、[使用者] 或 [使用者****名稱] 屬性中的 Windows 認證,以及 [密碼] 屬性來指定 Windows 網域。 否則,會發生錯誤 (必須指定連接屬性)。
cancelQueryTimeout

int

-1
(6.4 +) 這個屬性可以用來取消連接上的 queryTimeout 集。 如果未以無訊息方式卸載伺服器的 TCP 連接,查詢執行會停止回應,而且不會擲回例外狀況。 當連線上也設定 'queryTimeout' 時,此屬性才適用。

驅動程式會等候 cancelQueryTimeout + queryTimeout 的總秒數,然後中斷連線並關閉通道。

此屬性的預設值為 -1,而行為是無限期地等候。
clientCertificate

String

null
(8.4 版 +) 指定要用於用戶端憑證驗證的憑證位置。 JDBC 驅動程式將會支援 PFX、PEM、DER 與 CER 副檔名。

如需詳細資訊,請參閱回送案例的用戶端憑證驗證
clientKey

String

null
(8.4 版 +) 指定 clientCertificate 屬性所指定的 PEM、DER 和 CER 憑證之私密金鑰的位置。

如需詳細資訊,請參閱回送案例的用戶端憑證驗證
clientKeyPassword

String

null
(8.4 版 +) 指定了選用的密碼字串來存取 clientKey 檔案的私密金鑰。

如需詳細資訊,請參閱回送案例的用戶端憑證驗證
columnEncryptionSetting

String
["Enabled" | "Disabled"]

已停用
(6.0 版 +) 設定為 [已啟用],以使用 Always Encrypted (AE) 功能。 啟用 AE 時,JDBC 驅動程式會以透明的方式加密和解密儲存在伺服器上加密資料庫資料行中的敏感性資料。

如需 Always Encrypted 的詳細資訊,請參閱 使用 Always Encrypted 搭配 JDBC 驅動程式

注意: Always Encrypted 可用於 SQL Server 2016 或更新版本,以及 Azure SQL Database。
connectRetryCount

int
[0 ... 255]

1
如果發生連接失敗, (版本 9.4 +) 重新連線嘗試的次數。
connectRetryInterval

int
[1.. 60]

10
(9.4 版 +) 每次連線重試嘗試之間的秒數。
databaseName,
[資料庫]

String
[<=128 char]

null
要連接的資料庫名稱。

如果沒有指定,將連接到預設資料庫。
delayLoadingLobs

boolean
["true" | "false"]

true
新增旗標以指出是否要串流從 ResultSet 擷取的所有 LOB 物件。 將此屬性設定為 "false" 會在不串流的情況下,將整個 LOB 物件載入記憶體。
domainName,
網域

String
null
(7.4 版 +) 使用 NTLM 驗證時要驗證的 Windows 網域。
disableStatementPooling

boolean
["true" | "false"]

true
指出是否應該使用語句共用的旗標。
enablePrepareOnFirst...
PreparedStatementCall

boolean
["true" | "false"]

false
設定為 "true" 可 sp_prepexec 在第一次執行備妥的語句時,藉由呼叫來啟用備妥的語句控制碼建立。

設定為 "false" 可將準備語句的第一次執行變更為呼叫 sp_executesql ,而不是準備語句。 如果發生第二次執行,則會呼叫 sp_prepexec 來設定備妥的語句控制碼。
enclaveAttestationUrl

String

null
(版本 8.2 +) 此選擇性屬性會指出要用於安全記憶體保護區 Always Encrypted 的證明服務端點 URL。

如需有關使用安全記憶體保護區 Always Encrypted 的詳細資訊,請參閱 使用安全記憶體保護區 Always Encrypted
enclaveAttestationProtocol

String

null
(版本 8.2 +) 此選擇性屬性會指出要用於安全記憶體保護區 Always Encrypted 的證明通訊協定。 此欄位目前唯一支援的值為 HGS

如需有關使用安全記憶體保護區 Always Encrypted 的詳細資訊,請參閱 使用安全記憶體保護區 Always Encrypted
encrypt

boolean
["true" | "false"]

false
如果伺服器有安裝憑證,請設定為 "true" 以指定 SQL Server 將 TLS 加密用於用戶端與伺服器之間傳送的所有資料。 預設值為 "false"。

在6.0 版和更新版本中,預設會使用 TLS 加密的新連線設定 [驗證]。

如需此屬性的詳細資訊,請參閱 ' authentication ' 屬性。
failoverPartner

String

null
用於資料庫鏡像組態的容錯移轉伺服器名稱。 初始連接到主體伺服器若失敗,將使用此屬性;在建立初始連接之後,將忽略此屬性。 必須與 databaseName 屬性搭配使用。

注意: 驅動程式不支援在連接字串中指定容錯移轉夥伴實例的伺服器實例埠號碼作為 failoverPartner 屬性的一部分。 不過,它支援在相同的連接字串中指定主體伺服器執行個體的 serverName、instanceName 和 portNumber 屬性以及容錯移轉夥伴執行個體的 failoverPartner 屬性。

如果您在 [ 伺服器 連接] 屬性中指定虛擬網路名稱,則無法使用資料庫鏡像。 如需嚴重損壞修復的詳細資訊,請參閱 適用于高可用性和嚴重損壞修復的 JDBC 驅動程式支援
fips

boolean
["true" | "false"]

"false"
針對已啟用 FIPS JAVA 虛擬機器 (JVM) 此屬性應為 true
fipsProvider

String

null
在 JVM 中設定的 FIPS 提供者。 例如,BCFIPS 或 SunPKCS11-NSS。 在 6.4.0 版中已移除 - 請參閱這裡 (英文) 的詳細資料。
gsscredential

org.ietf.jgss.GSSCredential

null
您可以在此屬性中傳遞 (6.2 +) 要用於 Kerberos 限制委派的使用者認證。

使用此屬性時,應將 integratedSecurity 設定為 trueJavaKerberos 設定為 authenticationScheme
hostNameInCertificate

String

null
用於驗證 SQL Server TLS/SSL 憑證的主機名稱。

如果未指定 hostNameInCertificate 屬性或設定為 Null,則 Microsoft JDBC Driver for SQL Server 將會在連線 URL 上使用 serverName 屬性值來作為驗證 SQL Server TLS/SSL 憑證的主機名稱。

注意: 此屬性會搭配 encrypt/authentication 屬性和 trustServerCertificate 屬性一起使用。 如果連接使用 TLS 加密,且 trustServerCertificate 設定為 "false",則此屬性會影響憑證驗證。 請確定傳遞給 hostNameInCertificate 的值符合伺服器憑證中主體別名 (SAN) 內一般名稱 (CN) 或 DNS 名稱,以順利執行 TLS 連線。 如需加密支援的詳細資訊,請參閱 瞭解加密支援
INSTANCENAME

String
[<=128 char]

null
要連接的資料庫實例名稱。 如果未指定,則會連接至預設實例。 如果已指定 instanceName 與通訊埠,請參閱通訊埠的注意事項。

如果您在 [ 伺服器 連接] 屬性中指定虛擬網路名稱,則無法使用 [ instanceName ] 連接屬性。 如需嚴重損壞修復的詳細資訊,請參閱 適用于高可用性和嚴重損壞修復的 JDBC 驅動程式支援
integratedSecurity

boolean
["true"|"false"]

false
設定為 "true" 以指出 Windows 作業系統上的 SQL Server 會使用 Windows 認證。 若為 "true",JDBC 驅動程式會搜尋本機電腦認證快取,以取得使用者登入電腦或網路時所提供的認證。

設定為 "true" (搭配 authenticationscheme=JavaKerberos),以指出 SQL Server 使用 Kerberos 認證。 如需有關 Kerberos 驗證的詳細資訊,請參閱使用 kerberos 整合式驗證連接到 SQL Server

設定為 "true" (搭配 authenticationscheme=NTLM),以指出 SQL Server 使用 NTLM 認證。

若為 "false",必須提供使用者名稱及密碼。
jaasConfigurationName

String

SQLJDBCDriver
(6.2 版 +) SQL Server 的每個連線都可以有自己的 JAAS 登入設定檔,以建立 Kerberos 連接。 您可以透過這個屬性傳遞登入設定檔的名稱。
根據預設,會 useDefaultCcache = true 針對 IBM jvm 和其他 jvm 設定驅動程式 useTicketCache = true
keyStoreAuthentication

String

null
(6.0 版 +) 此屬性會識別要搭配 Always Encrypted 使用的金鑰存放區,並決定用來驗證金鑰存放區的驗證機制。 當您設定 "keyStoreAuthentication = JAVAKeyStorePassword" 時,驅動程式支援無縫設定 JAVA 金鑰存放區。 若要使用這個屬性,您也需要設定 JAVA 金鑰存放區的 keyStoreLocationkeyStoreSecret 屬性。

如需 Always Encrypted 的詳細資訊,請參閱 使用 Always Encrypted 搭配 JDBC 驅動程式

從 Microsoft JDBC Driver 8.4 開始,您可以設定 "keyStoreAuthentication = KeyVaultManagedIdentity" 或 "keyStoreAuthentication = >keyvaultclientsecret",以使用受控識別向 Azure Key Vault 進行驗證。

如需 Always Encrypted 的詳細資訊,請參閱 使用 Always Encrypted 搭配 JDBC 驅動程式
keyStoreLocation

String

null
(6.0 版 +) 在 keyStoreAuthentication = JAVAKeyStorePassword 時, keyStoreLocation 屬性會識別 JAVA 金鑰儲存區檔案的路徑,該檔案會儲存要與 Always Encrypted 資料搭配使用的資料行主要金鑰。 路徑必須包含金鑰儲存區檔案名。

如需 Always Encrypted 的詳細資訊,請參閱 使用 Always Encrypted 搭配 JDBC 驅動程式
keyStorePrincipalId

String

null
keyStoreAuthentication = KeyVaultManagedIdentity (8.4 版 +) 時, keyStorePrincipalId 屬性會指定有效的 Azure Active Directory 應用程式用戶端識別碼。

如需 Always Encrypted 的詳細資訊,請參閱 使用 Always Encrypted 搭配 JDBC 驅動程式
keyStoreSecret

String

null
(6.0 版 +) 在 keyStoreAuthentication = JAVAKeyStorePassword 時, keyStoreSecret 屬性會識別要用於金鑰儲存區和金鑰的密碼。 若要使用 Java Key Store,則金鑰儲存區和金鑰的密碼必須相同。

如需 Always Encrypted 的詳細資訊,請參閱 使用 Always Encrypted 搭配 JDBC 驅動程式
lastUpdateCount

boolean
["true" | "false"]

true
"true" 值只會從傳遞至伺服器的 SQL 語句傳回上次更新計數,並且可用於單一 SELECT、INSERT 或 DELETE 子句,以忽略伺服器觸發程式所造成的其他更新計數。 將此屬性設定為 "false" 會傳回所有更新計數,包括伺服器觸發程式所傳回的更新計數。

注意: 這個屬性僅適用于搭配 executeUpdate 方法使用時。 所有其他 execute 方法都會傳回所有結果並更新計數。 這個屬性只會影響伺服器觸發程序所傳回的更新計數。 它不會影響觸發程式執行過程中所產生的結果集或錯誤。
lockTimeout

int

-1
等候資料庫報告鎖定逾時的毫秒數。預設的行為是無限期等待。 如果指定了此值,則此值為連接上所有語句的預設值。 SetQueryTimeout () 可以用來設定特定語句的超時時間。 此值可以為 0,表示不等待。
loginTimeout

int
[0..65535]

15
驅動程式應等待失敗連接逾時的秒數。 值為零表示此逾時為預設系統逾時,預設指定為 15 秒。 非零值為驅動程式應等待失敗連接之逾時的秒數。

如果您在 Server 連線屬性中指定虛擬網路名稱,您應該指定三分鐘或更長的逾時值,好讓容錯移轉連線有充足的時間可以順利完成。 如需嚴重損壞修復的詳細資訊,請參閱 適用于高可用性和嚴重損壞修復的 JDBC 驅動程式支援
maxResultBuffer

String

null
(9.2 +) MaxResultBuffer 版本可以用來設定讀取結果集時要讀取的最大位元組數。 如果未指定,則會讀取整個結果集。 您可以用兩種樣式來指定大小:
1. as 位元組大小 (例如,100、150M、300K.wvx、400G)
2. 作為最大堆積記憶體的百分比 (例如,10p、15pct、20percent) 。
msiClientId

String

null
(7.2 版 +) 受控識別 (MSI) 的用戶端識別碼,以在建立與 >activedirectorymsi authentication 模式的連接時用來取得 accessToken
multiSubnetFailover

Boolean

false
在連線到 SQL Server 可用性群組的可用性群組接聽程式或 SQL Server 容錯移轉叢集執行個體時,一律指定 multiSubnetFailover=truemultiSubnetFailover = true 會設定驅動程式,以提供更快速的 (偵測,並連接到目前) 使用中的伺服器。 可能的值為 true 和 false。 如需嚴重損壞修復的詳細資訊,請參閱 適用于高可用性和嚴重損壞修復的 JDBC 驅動程式支援

您可以透過程式設計方式,使用 getPropertyInfogetMultiSubnetFailoversetMultiSubnetFailover 存取 multiSubnetFailover 連線屬性。

注意: 從適用于 SQL Server 的 Microsoft JDBC Driver 6.0 開始,當連接到可用性群組接聽程式時,不再需要將 multiSubnetFailover 設定為 "true"。 預設會啟用新屬性 (transparentNetworkIPResolution),可提供 (目前) 作用中伺服器的偵測和連線。
packetSize

int
[-1 | 0 | 512..32767]

8000
用來與伺服器通訊的網路封包大小(以位元組為單位)。 -1 這個值表示使用伺服器的預設封包大小。 0 這個值表示使用最大值,也就是 32767。 如果將此屬性設定為可接受範圍以外的值,則會發生例外狀況。

重要事項: 啟用加密 (encrypt = true) 時,不建議使用 packetSize 屬性。 否則,驅動程式可能會引發連接錯誤。 如需此屬性的詳細資訊,請參閱SQLServerDataSource類別的setPacketSize方法。
密碼

String
[<=128 char]

null
如果與 SQL 使用者和密碼連接,則為資料庫密碼。
若為具有主體名稱和密碼的 Kerberos 連線,此屬性會設定為 Kerberos 主體密碼。
portNumber,
連接埠

int
[0..65535]

1433
伺服器正在接聽的埠。 如果已在連接字串中指定連接埠號碼,就不需要對 SQLbrowser 進行要求。 同時指定 port 和 instanceName 時,會連接至指定的通訊埠。 不過,系統會驗證 instanceName ,如果它不符合通訊埠,則會擲回錯誤。

重要事項: 建議您一律指定埠號碼,因為它比使用 SQLbrowser 更安全。
queryTimeout

int

-1
查詢上發生逾時前要等候的秒數。 預設值為 -1,表示無限期逾時。 將此值設定為0也表示無限期等候。
realm

String

null
(版本 9.4 +) 用於 Kerberos 驗證的領域。 設定此值將會覆寫驅動程式從伺服器的領域自動偵測到的 Kerberos 驗證領域。
複寫

boolean
["true" | "false"]

false
(9.4 版 +) 此設定會告知伺服器是否使用連接進行複寫。 啟用時, NOT FOR REPLICATION 將不會在連接上引發 with 選項的觸發程式。
responseBuffering

String
["full" | "adaptive"]

adaptive
如果此屬性設定為 "adaptive",就會在必要時緩衝處理可能的資料下限。 預設模式為 "adaptive"。

如果這個屬性設定為 "full",則會在執行語句時,從伺服器讀取整個結果集。

注意: 在將 JDBC 驅動程式從 1.2 版升級之後,預設的緩衝行為將會是 "adaptive"。 如果您想要在應用程式中保留1.2 版的預設行為,您必須在連接屬性中將 responseBufferring 屬性設定為 "full",或使用SQLServerStatement物件的setResponseBuffering方法。
selectMethod

String
["direct" | "cursor"]

直接
如果將此屬性設定為 "cursor",便會為在 TYPE_FORWARD_ONLYCONCUR_READ_ONLY 資料指標之連線上建立的每個查詢,建立資料庫資料指標。 通常只有當應用程式所產生的結果集過於龐大而用戶端記憶體無法全數包含時,才需要此屬性。 如果這個屬性設定為 "cursor",則只會在用戶端記憶體中保留有限數目的結果集資料列。

預設行為是所有結果集資料列都會保留在用戶端記憶體中。 當應用程式處理所有資料列時,此行為提供最快的效能。
sendStringParameters...
AsUnicode

boolean
["true" | "false"]

true
如果 sendStringParametersAsUnicode 屬性設定為 "true",String 參數就會以 Unicode 格式傳送至伺服器。

如果 sendStringParametersAsUnicode 屬性設定為 "false",String 參數就會以非 Unicode 格式 (例如 ASCII/MBCS) 而非 Unicode 傳送至伺服器。

sendStringParametersAsUnicode 屬性的預設值為 "true"。

注意: 只有在傳送具有 CHARVARCHARLONGVARCHAR JDBC 類型的參數值時,才會檢查 sendStringParametersAsUnicode 屬性。 新的 JDBC 4.0 國家字元方法(例如 SQLServerPreparedStatementSQLServerCallableStatement 類別的 SetNString、setNCharacterStream 和 setNClob 方法)一律會以 Unicode 將其參數值傳送到伺服器,不論這個屬性的設定為何。

若要讓 CHARVARCHARLONGVARCHAR JDBC 資料類型達到最佳效能,應用程式應該將 sendStringParametersAsUnicode 屬性設定為 "false",並且使用 SQLServerPreparedStatementSQLServerCallableStatement 類別的 setString、setCharacterStream 及 setClob 非國家字元方法。

當應用程式將 sendStringParametersAsUnicode 屬性設定為 "false" 並使用非國家字元方法來存取伺服器端的 Unicode 資料類型 (例如 NcharNvarcharNtext) 時,如果資料庫定序不支援非國家字元方法所傳遞之字串參數中的字元,某些資料可能會遺失。

應用程式應該針對 NCHARNVARCHARSQLServerCallableStatement JDBC 資料類型,使用 SQLServerPreparedStatement>longNvarchar類別的 setNString、setNCharacterStream 和 setNClob 國家字元方法。
sendTemporalDataTypesAsStringForBulkCopy

boolean
["true" | "false"]

true
(8.4 版 +) 此連接屬性設定為 "false" 時,會傳送 DATEDATETIMEDATIMETIME2DATETIMEOFFSETSMALLDATETIMETIME 資料類型做為其各自的類型,而不是以字串形式傳送。

當這個連接屬性設定為 "false" 時,驅動程式將只接受每個時態性資料類型的預設字串常值格式,例如:

日期: YYYY-MM-DD
DATETIME: YYYY-MM-DD hh:mm:ss[.nnn]
DATETIME2 YYYY-MM-DD hh:mm:ss[.nnnnnnn]
DATETIMEOFFSET YYYY-MM-DD hh:mm:ss[.nnnnnnn] [{+/-}hh:mm]
SMALLDATETIME YYYY-MM-DD hh:mm:ss
時間: hh:mm:ss[.nnnnnnn]
sendTimeAsDatetime

boolean
["true" | "false"]

true
這個屬性是在 SQL Server JDBC Driver 3.0 中新增的。

設定為 "true" 時,會將 java.sql.Time 值當作 SQL Server datetime 值傳送至伺服器。
設定為 "false" 時,會將 java.sql.Time 值當作 SQL Server time 值傳送至伺服器。

這個屬性的預設值為 "true",但在後續版本可能會變更。

如需 Microsoft JDBC Driver for SQL Server 如何設定 java.sql.Time 值然後傳送至伺服器的詳細資訊,請參閱設定 java.sql.Time 值如何傳送給伺服器
serverName,
伺服器

String

null
SQL Server執行或 Azure SQL 資料庫的電腦。

您也可以指定 AlwaysOn 可用性群組 可用性群組的虛擬網路名稱。 如需嚴重損壞修復的詳細資訊,請參閱 適用于高可用性和嚴重損壞修復的 JDBC 驅動程式支援
serverNameAsACE

boolean
["true" | "false"]

false
(6.0 版 +) 設定為 "true" 時,表示驅動程式應該將 Unicode 伺服器名稱轉譯成 ASCII 相容編碼 (Punycode) 進行連接。 若此設定為 false,驅動程式會使用使用者所提供的伺服器名稱進行連接。

如需國際功能的詳細資訊,請參閱 JDBC driver 的國際功能
serverPreparedStatement...
DiscardThreshold

整數

10
(6.2 +) 此屬性可用來控制在 sp_unprepare 執行清理伺服器上未完成控制碼的呼叫之前,每個連接 () 可以有多少個未完成的備妥語句捨棄動作。

如果此屬性設定為 <= 1,備妥陳述式一結束就會立即執行未準備動作。 如果設定為 > 1,則會將這些呼叫批次處理在一起,以避免太常呼叫 sp_unprepare 的額外負荷。
serverSpn

String

null
(4.2 版 +) 這個選擇性屬性可以用來指定 JAVA Kerberos 連接 (SPN) 的服務主體名稱。 它會與 authenticationScheme 搭配使用。

若要指定 SPN,可以使用下列格式:"MSSQLSvc/fqdn:port@REALM",其中 fqdn 是完整網域名稱,port 是連接埠號碼,REALM 是以大寫字母表示的 SQL Server Kerberos 領域。

注意:如果該用戶端的預設領域 (如 Kerberos 設定中所指定) 與 SQL Server 的 Kerberos 領域相同,則 @REALM 是選擇性項目。

如需搭配使用 serverSpn 與 JAVA Kerberos 的詳細資訊,請參閱 使用 Kerberos 整合式驗證連接到 SQL Server
socketFactoryClass

String

null
(8.4 版 +) 指定要用來取代預設通訊端 factory 的自訂通訊端 factory 的類別名稱。
socketTimeout

int

0
在通訊端讀取或接受時發生逾時之前要等候的毫秒數。 預設值為 0,表示無限期逾時。
statementPooling...
CacheSize

int

0
(6.4 +) 這個屬性可用來啟用驅動程式中的備妥語句控制碼快取。

此屬性定義陳述式共用的快取大小。

這個屬性只能搭配 disableStatementPooling 連接屬性使用,應該設定為 "false"。 將 disableStatementPooling 設定為 "true" 或將 statementPoolingCacheSize 設定為 0 時,會停用備妥陳述式控制代碼快取。
sslProtocol

String

TLS
(6.4 +) 此屬性可用來指定要在安全連線期間考慮的 TLS 通訊協定。
可能的值包括:TLSTLSv1TLSv1.1TLSv1.2

如需 SSL 通訊協定的詳細資訊,請參閱 SSLProtocol
transparentNetwork...
IPResolution

boolean
["true" | "false"]

true
(6.0 版 +) 此屬性可提供更快速的偵測和連接到目前) 作用中伺服器的 (。 可能的值為 "true" 和 "false",其中 "true" 為預設值。

在 SQL Server 的 Microsoft JDBC Driver 6.0 之前,應用程式必須將連接字串設定為包含 "multiSubnetFailover = true",以指出它是連接到 AlwaysOn 可用性群組。 若未將 multiSubnetFailover connection 關鍵字設定為 "true",則應用程式在連線到 AlwaysOn 可用性群組時,可能會遇到逾時。 在版本6.0 和更新版本中,應用程式不需要再將 multiSubnetFailover 設定為 true。

注意: 當 transparentNetworkIPResolution=true 時,第一次連線嘗試會使用 500 毫秒作為逾時。 任何後續嘗試都會使用 multiSubnetFailover 屬性所使用的相同超時邏輯。
trustManagerClass

String

null
(6.4 版 +) 自訂執行的完整類別名稱 javax.net.ssl.TrustManager
trustManager...
ConstructorArg

String

null
(6.4 +) 可傳遞至 TrustManager 的函式的選擇性引數。 如果指定了 trustManagerClass,且要求了加密的連接,則會使用自訂 TrustManager,而不是預設的系統 JVM 金鑰儲存區型 TrustManager。
trustServerCertificate

boolean
["true" | "false"]

false
設定為 "true" 以指定驅動程式不會驗證服務器 TLS/SSL 憑證。

若為 "true",當通訊層使用 TLS 加密時,會自動信任伺服器 TLS/SSL 憑證。

如果為 "false",驅動程式會驗證服務器 TLS/SSL 憑證。 如果伺服器憑證驗證失敗,驅動程式會引發錯誤並關閉連接。 預設值為 "false"。 請確定傳遞給 serverName 的值完全符合伺服器憑證中主體別名內一般名稱 (CN) 或 DNS 名稱,以順利執行 TLS/SSL 連線。 如需加密支援的詳細資訊,請參閱 瞭解加密支援

注意: 此屬性會搭配 encrypt/authentication 屬性一起使用。 如果連接使用 TLS 加密,此屬性只會影響伺服器的 TLS/SSL 憑證驗證。
trustStore

String

null
trustStore 憑證檔案的路徑 (包括檔案名稱)。 trustStore 檔案包含用戶端所信任之憑證的清單。

未指定此屬性或將其設定為 null 時,驅動程式會依賴信任管理員 Factory 的查閱規則,決定要使用的憑證存放區。

預設的 SunX509 TrustManagerFactory 會嘗試以下列的搜尋順序,找出信任的資料:

由 "javax.xml.transform.dom.domresult. trustStore" JVM 系統屬性所指定的檔案。

"<java 主目錄>/lib/security/jssecacerts" 檔案。

"<java 主目錄>/lib/security/cacerts" 檔案。



如需有關 SUNX509 TrustManager 介面的詳細資訊,請參閱 Sun Microsystems 網站上的 SUNX509 TrustManager 介面檔。

注意: 此屬性只會影響憑證 trustStore 查閱(如果連接使用 TLS 加密,而 trustServerCertificate 屬性設定為 "false")。
trustStorePassword

String

null
用於檢查 trustStore 資料完整性的密碼。

如果已設定 trustStore 屬性,但未設定 trustStorePassword 屬性,則不會檢查 trustStore 的完整性。

當 trustStore 和 trustStorePassword 屬性都未指定時,驅動程式會使用 JVM 系統屬性 "javax.net.ssl.trustStore" 和 "javax.net.ssl.trustStorePassword"。 如果未指定 "javax.xml.transform.dom.domresult" trustStorePassword "系統屬性,則不會檢查 trustStore 的完整性。

如果未設定 trustStore 屬性,但已設定 trustStorePassword 屬性,JDBC 驅動程式會使用 "javax.xml.transform.dom.domresult" 指定的檔案做為信任存放區,並使用指定的 trustStorePassword 來檢查信任存放區的完整性。 當用戶端應用程式不想將密碼儲存在 JVM 系統屬性時,需要此設定。

注意: TrustStorePassword 屬性只會影響憑證 trustStore 查閱,如果連接使用 TLS 連接,且 trustServerCertificate 屬性設定為 "false"。
trustStoreType

String

JKS
設定此屬性來指定要用於 FIPS 模式信任存放區類型。

可能的值為 PKCS12 或由 FIPS 提供者所定義的類型。
useBulkCopyFor...
BatchInsert

boolean
["true" | "false"]

false
(9.2 +) 可以啟用此連接屬性,以便在執行批次插入作業時,以透明的方式使用大量複製 API java.sql.PreparedStatement 。 這項功能在啟用時可能會提供更高的效能。

此功能預設為停用。 將此屬性設定為 "true" 以啟用此功能。
重要事項: 此功能僅支援完全參數化的 INSERT 查詢。 如果 INSERT 查詢是由其他 SQL 查詢結合,或包含值型式的資料,則執行會回復為基本批次插入作業。

如需如何使用此屬性的詳細資訊,請參閱 使用大量複製 API 進行批次插入作業
useFmtOnly

boolean
["true" | "false"]

false
(7.4 版 +) 提供從伺服器查詢參數中繼資料的替代方法。 將此屬性設定為 "true",以指定驅動程式在查詢參數中繼資料時,應該使用 SET FMTONLY 邏輯。 這項功能預設為關閉,不建議使用此屬性作為 SET FMTONLY 標示為取代的屬性。 提供使用 useFmtOnly 只是作為 sp_describe_undeclared_parameters (部分機器翻譯) 中已知問題和限制的因應措施。

此功能目前只支援單一 SELECT/INSERT/UPDATE/DELETE 查詢。 嘗試將此功能用於不支援/多個查詢時,會導致驅動程式嘗試剖析 (s) 的查詢,但很可能會導致例外狀況。

如需此屬性的詳細資訊,請參閱透過 useFmtOnly 抓取 ParameterMetaData
userName,
user

String
[<=128 char]

null
如果與 SQL 使用者和密碼的連接,則為資料庫使用者。

針對使用主體名稱和密碼的 Kerberos 連線,此屬性是設定為 Kerberos 主體名稱。
workstationID

String
[<=128 char]

<空字串>
工作站識別碼。 用來識別各種程式碼剖析和記錄工具中的特定工作站。

若未指定,將會使用 <空字串>。
xopenStates

boolean
["true" | "false"]

false
設定為 "true",以指定驅動程式傳回例外狀況的 XOPEN 相容狀態碼。

預設為傳回 SQL 99 狀態碼。
   

注意

Microsoft JDBC Driver for SQL Server 會針對連線屬性採用伺服器預設值,但是 ANSI_DEFAULTS 和 IMPLICIT_TRANSACTIONS 除外。 Microsoft JDBC Driver for SQL Server 會自動將 ANSI_DEFAULTS 設定為 ON,並將 IMPLICIT_TRANSACTIONS 設定為 OFF。

重要

如果驗證設定為 ActiveDirectoryPassword,則下列程式庫必須包含在類別路徑中: 適用于 java 的 microsoft 驗證程式庫。 您可以在 Maven 存放庫 (英文) 找到該程式庫。 下載程式庫及其相依性的最簡單方式是使用 Maven:

  1. 在您的系統上安裝 Maven
  2. 移至驅動程式的 GitHub 頁面 (英文)
  3. 下載 pom.xml 檔案
  4. 執行下列 Maven 命令,以下載程式庫和其相依性: mvn dependency:copy-dependencies

另請參閱

使用 JDBC 驅動程式連線到 SQL Server
FIPS 模式