本主題描述可在用戶端應用程式內支援服務主要名稱 (SPN) 的 ODBC 屬性和函數。 如需用戶端應用程式中 SPN 的詳細資訊,請參閱 用戶端連線中的服務主體名稱 (SPN) 支援 和 取得相互 Kerberos 驗證。
連接字串關鍵字
下列連接字串關鍵字可讓用戶端應用程式指定 SPN。
關鍵字 | 值 |
---|---|
ServerSPN |
伺服器的 SPN。 預設值是空字串,這會導致SQL Server Native Client使用預設驅動程式產生的 SPN。 |
FailoverPartnerSPN |
容錯移轉夥伴的 SPN。 預設值是空字串,這會導致SQL Server Native Client使用預設驅動程式產生的 SPN。 |
連接屬性
下列連接屬性可讓用戶端應用程式指定 SPN,並查詢是否有驗證方法。
名稱 | 類型 | 使用量 |
---|---|---|
SQL_COPT_SS_SERVER_SPN SQL_COPT_SS_FAILOVER_PARTNER_SPN |
SQLTCHAR,讀取/寫入 | 指定伺服器的 SPN。 預設值是空字串,這會導致SQL Server Native Client使用預設驅動程式產生的 SPN。 只有當已經以程式設計方式設定這個屬性之後,或是在已經開啟連接之後,才可以查詢這個屬性。 如果嘗試在尚未開啟的連接上查詢這個屬性,而且尚未以程式設計方式設定此屬性,就會傳回 SQL_ERROR,而且會將診斷記錄記錄下來,其中包含 SQLState 08003 和「未開啟連接」訊息。 如果嘗試在已開啟連接時設定這個屬性,就會傳回 SQL_ERROR,而且會將診斷記錄記錄下來,其中包含 SQLState HY011 和「此時作業無效」訊息。 |
SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD | SQLTCHAR,唯讀 | 傳回連接所使用的驗證方法。 傳回給應用程式的值是 Windows 傳回至SQL Server Native Client的值。 可能的值包括: - 「NTLM」,這是在使用 NTLM 驗證開啟連線時所傳回。 - 「Kerberos」,這是在使用 Kerberos 驗證開啟連線時傳回的。 只能針對使用 Windows 驗證的開啟連接來讀取這個屬性。 如果嘗試在開啟連接之前讀取這個屬性,就會傳回 SQL_ERROR,而且會將錯誤記錄下來,其中包含 SQLState 08003 和「未開啟連接」訊息。 如果在尚未使用 Windows 驗證的連接上查詢這個屬性,就會傳回 SQL_ERROR,而且會將錯誤記錄下來,其中包含 SQLState HY092 和「屬性/選項識別碼無效 (SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD 只適用於信任連接)」訊息。 如果無法判斷驗證方法,就會傳回 SQL_ERROR,而且會將錯誤記錄下來,其中包含 SQLState HY000 和「一般錯誤」訊息。 |
SQL_COPT_SS_MUTUALLY_AUTHENTICATED | SQLSMALLINT,唯讀 | 如果連接中的伺服器已互相驗證過,則會傳回 SQL_TRUE,否則會傳回 SQL_FALSE。 只能針對開啟的連接來讀取這個屬性。 如果嘗試在開啟連接之前讀取這個屬性,就會傳回 SQL_ERROR,而且會將錯誤記錄下來,其中包含 SQLState 08003 和「未開啟連接」訊息。 如果針對未使用 Windows 驗證的連接來查詢這個屬性,就會傳回 SQL_FALSE。 |
用來指定 SPN 的 ODBC 函數支援
下列 ODBC 函數可支援用戶端應用程式和 SPN: