クライアント接続におけるサービス プリンシパル名 (SPN) (ODBC)

ここでは、クライアント アプリケーションのサービス プリンシパル名 (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 が返され、"属性またはオプション識別子が無効です (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 をサポートしています。

関連項目

概念

SQL Server Native Client (ODBC)