クライアント接続におけるサービス プリンシパル名 (SPN) (ODBC)
ここでは、クライアント アプリケーションのサービス プリンシパル名 (SPN) をサポートする ODBC 属性および関数について説明します。 クライアント アプリケーションの SPN の詳細については、「クライアント接続での サービス プリンシパル名 (SPN) のサポート 」および「 相互 Kerberos 認証の取得」を参照してください。
接続文字列キーワード
次の接続文字列キーワードを使用すると、クライアント アプリケーションは SPN を指定できます。
Keyword | 値 |
---|---|
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 が返され、"属性またはオプション識別子が無効です (SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD は信頼関係接続でのみ使用できます)" というメッセージで SQLState HY092 がエラーとして記録されます。 認証方法を特定できない場合は、SQL_ERROR が返され、"一般的なエラー" というメッセージで SQLState HY000 がエラーとして記録されます。 |
SQL_COPT_SS_MUTUALLY_AUTHENTICATED | SQLSMALLINT、読み取り専用 | 接続されているサーバーが相互に認証された場合は SQL_TRUE を返します。それ以外の場合は SQL_FALSE を返します。 この属性は、開いている接続のみで読み取ることができます。 接続が開かれる前にこの属性を読み取ると、SQL_ERROR が返され、"接続は開いていません" というメッセージで SQLState 08003 がエラーとして記録されます。 Windows 認証を使用していない接続に対してこの属性が照会されると、SQL_FALSE が返されます。 |
ODBC 関数による SPN 指定のサポート
次の ODBC 関数では、クライアント アプリケーションと SPN をサポートしています。