SQL Server 2005 のインスタンスへのリモート接続を作成するときに、Kerberos 認証を使用していることを確認する方法

文書翻訳 文書翻訳
文書番号: 909801 - 対象製品
すべて展開する | すべて折りたたむ

目次

はじめに

この資料では、SQL Server 2005 のインスタンスへのリモート接続を作成するときに、Microsoft Windows の認証方法として Kerberos 認証を使用していることを確認する方法について説明します。

詳細

SQL Server 2005 では、SQL 認証の代わりに Windows 統合認証を使用する場合、Windows セキュリティ サポート プロバイダ インターフェイス (SSPI) を介して間接的に Kerberos 認証がサポートされます。ただし SQL Server では、使用する認証プロトコルを SSPI を使用してネゴシエートすることができる一定の環境でのみ、Kerberos 認証が使用されます。SQL Server が Kerberos 認証を使用できない場合、Windows は NTLM 認証を使用します。セキュリティを高めるため、NTLM 認証の代わりに Kerberos 認証を使用することを推奨します。管理者およびユーザーは、リモート接続用に Kerberos 認証を使用していることを確認する方法を知っている必要があります。

Kerberos 認証を使用するには、次の条件をすべて満たしている必要があります。
  • サーバーおよびクライアント コンピュータはどちらも、同じ Windows ドメインのメンバまたは信頼される側のドメインのメンバである必要があります。
  • サーバーのサービス プリンシパル名 (SPN) は、Active Directory ディレクトリ サービスに登録されている必要があります。
  • SQL Server 2005 のインスタンスでは、TCP/IP プロトコルが有効になっている必要があります。
  • クライアントは、TCP/IP プロトコルを使用して SQL Server 2005 のインスタンスに接続する必要があります。たとえば、クライアントのプロトコルの順序の先頭に TCP/IP プロトコルを配置します。または、接続文字列にプレフィックス "tcp:" を追加して、接続で TCP/IP プロトコルが使用されるように指定します。

ドメインで SPN を登録する方法

SQL Server サービスの SPN を登録する場合、基本的には SPN とサーバー インスタンス サービスを開始した Windows アカウントとの間のマッピングを作成します。

クライアントは登録された SPN を使用してサーバー インスタンスに接続する必要があるため、SPN を登録する必要があります。SPN はサーバーのコンピュータ名と TCP/IP ポートを使用して構成されます。SPN を登録しないと、SSPI は SPN に関連付けられているアカウントを特定できません。そのため、Kerberos 認証は使用されません。

SQL Server がローカル システム アカウントまたはドメイン管理者アカウントで実行されている場合、このインスタンスは起動時に以下の形式で SPN を自動的に登録します。
MSSQLSvc/FQDN:tcpport
: FQDN はサーバーの完全修飾ドメイン名です。tcpport は TCP/IP ポート番号です。

TCP ポート番号は SPN 内に含まれているため、ユーザーが Kerberos 認証を使用して接続できるようにするには、SQL Server で TCP/IP プロトコルを有効にする必要があります。同じルールはクラスタ化された構成にも適用されます。また、インスタンスの起動時に SPN が自動的に登録される場合、インスタンスの停止時に自動的に SPN の登録が解除されます。

ドメイン管理者アカウントおよびローカル システム アカウントのみが、SPN の登録に必要なアクセス許可を持っています。そのため、管理者以外のアカウントを使用して SQL Server サービスが開始されると、SQL Server はそのインスタンスの SPN を登録できません。この動作はインスタンスの起動には影響しません。ただし、次のメッセージが Windows イベント ログのアプリケーション ログに出力されます。

種類 : 情報
ソース : MSSQL$InstanceName
分類 : (2)
イベント ID : 26037
日付 : Date
時刻 : Time
ユーザー : N/A
コンピュータ : ComputerName
説明 :
SQL ネットワーク インターフェイス ライブラリで、SQL Server サービスのサービス プリンシパル名 (SPN) を登録できませんでした。エラー: 0x54b。SPN の登録エラーにより、統合認証で Kerberos ではなく NTLM が使用される可能性があります。このメッセージは情報提供を目的としています。追加操作が必要なのは、認証ポリシーで Kerberos 認証が必要な場合だけです。
詳細な情報は、http://support.microsoft.com の [ヘルプとサポート センター] を参照してください。

このメッセージがログに出力される場合、Kerberos 認証を使用するには、ドメイン管理者アカウントを使用してインスタンスの SPN を手動で登録する必要があります。Microsoft Windows 2000 Server リソース キットに含まれている SetSPN.exe ツールを使用することにより、SPN を登録できます。またこのツールは、Microsoft Windows Server 2003 Support Tools にも含まれています。Windows Server 2003 Support Tools は Microsoft Windows Server 2003 Service Pack 1 (SP1) に含まれています。

Windows Server 2003 Service Pack 1 のサポート ツールを入手する方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
892777 Windows Server 2003 Service Pack 1 のサポート ツール
インスタンスの SPN を登録するには、次のようなコマンドを使用できます。
SetSPN -A MSSQLSvc/<ComputerName>.<DomainName>:1433 <AccountName>
: SPN が既に存在している場合は、登録する前にその SPN を削除する必要があります。アカウントのマッピングが変更された場合に、この作業が必要になることがあります。既存の SPN を削除するには、-D スイッチを付けて SetSPN.exe ツールを実行します。

Kerberos 認証を使用していることを確認する方法

SQL Server 2005 のインスタンスに接続した後、SQL Server Management Studio で次の Transact-SQL ステートメントを実行します。
select auth_scheme from sys.dm_exec_connections where session_id=@@spid
SQL Server で Kerberos 認証が使用されている場合、結果ウィンドウの auth_scheme 列に "KERBEROS" という文字列が表示されます。

関連情報

詳細については、Microsoft SQL Server 2005 Books Online の以下のトピックを参照してください。
  • サービス プリンシパル名の登録
  • サーバー クラスタの SQL Server 仮想サーバーを含めて Kerberos 認証を有効にする方法

プロパティ

文書番号: 909801 - 最終更新日: 2006年9月22日 - リビジョン: 2.0
この資料は以下の製品について記述したものです。
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2005 Express Edition
キーワード:?
kbsql2005connect kbinfo KB909801
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com