SQL Serverの Kerberos Configuration Managerの概要
適用対象: SQL Server
元の KB 番号: 2985455
ネットワーク内の Kerberos 構成が正しくないと、Microsoft SQL Serverでさまざまな接続エラーが発生する可能性があります。 SQL Server用の Kerberos Configuration Managerは、SQL Server、SQL Server Reporting Services (SSRS)、およびに影響する Kerberos 関連の接続の問題のトラブルシューティングに役立つ診断ツールです。SQL Server Analysis Services (SSAS)。 この記事では、Kerberos Configuration Manager ツールを使用する方法と、ツールからの出力を解釈して、SQL Serverに影響する Kerberos の問題を解決する方法について説明します。
注:
Kerberos Configuration Managerは現状のまま提供されており、テクニカル サポートや更新プログラムは提供されません。 SQL SERVER 2022 以降のバージョンの WMI プロバイダーを使用するように更新されていません。 SQL Server関連する Kerberos 構成の問題のトラブルシューティングと診断については、「SQLCheck」を参照してください。
Kerberos Configuration Managerの関数
Kerberos Configuration Managerでは、次のタスクを実行できます。
- サーバーにインストールされている OS、Microsoft SQL Server インスタンス、およびAlways On可用性グループ リスナーに関する情報を収集します。
- サーバー上のすべてのサービス プリンシパル名 (SPN) と委任構成を報告します。
- SPN と委任の潜在的な問題を特定します。
- SPN の潜在的な問題を修正します。
使用シナリオ
このツールは、次の例外のトラブルシューティングに役立ちます。
- 401
メモ: このエラー メッセージは、HTTP エラー、SSRS エラー、およびその他の同様のエラーを対象とします。
- SSPI コンテキストを生成できません
- ユーザー 'NTAUTHORITY\ANONYMOUS LOGON' のログインに失敗しました
- ユーザー '(null)' はログインできませんでした
- ユーザーのログインに失敗しました (空)
注:
問題のトラブルシューティングを開始する前に、前提条件を確認してから、一般的なチェックリストを参照して接続関連のエラーのトラブルシューティングを行うことをお勧めします。
注:
SQL Server ベースのコンピューターへの管理者アクセス権がある場合は、そのコンピューターで SQL 接続設定チェック ツールを実行し、出力を確認して SQL Server インスタンスの SPN 構成をチェックすることもできます。
ツールのダウンロード
このツールは、Microsoft ダウンロード センターからダウンロードできます。
microsoft Kerberos Configuration Manager for SQL Server
注:
SQL Server ベースのコンピューターに接続できるドメイン内の任意のコンピューターにツールをダウンロードしてインストールできます。
アクセス許可
SQL、SSRS、SSAS に影響する接続の問題をトラブルシューティングするには、そのコンピューターに対する管理アクセス許可を持つドメイン ユーザー アカウントを使用して、移行先のコンピューター (サービスをホストしているコンピューター) に接続します。
省略可能: ツールを使用して、ツールによって識別される SPN の問題を解決する場合は、ドメイン アカウントに サービス プリンシパル名への検証済み書き込み アクセス許可が必要です。
ツールの使用
インストールが完了したら、インストール フォルダーに移動して 、KerberosConfigMgr.exe バイナリを開始します。 既定では、場所は C:\Program Files\Microsoft\Kerberos Configuration Manager SQL Serverです。
管理者または別のユーザーとしてアプリを起動する方法については、「 実行を使用して管理者としてアプリを起動する」を参照してください。
トラブルシューティングを開始するには、次のいずれかのオプションを使用します。
リモート SQL Server ベースのコンピューターに接続するには、[サーバー名]、[ドメイン ユーザー名]、[パスワード] に適切な値を入力します。
注:
Kerberos Configuration Manager ツールは、Windows API を使用して、SQL Server コンピューターの Kerberos 構成に関する情報の照会と表示を行います。 そのため、名前付きインスタンスの Kerberos 関連の問題をトラブルシューティングする場合でも、SQL Server インスタンスをホストするコンピューターの名前を常に入力します。
ローカル サーバーに接続するには、[ 接続 ] を選択して Kerberos 構成を分析します。 この場合、サーバー名、ドメイン ユーザー名、またはパスワードを指定する必要はありません。
注:
ツールを起動するアカウントは、ローカル管理者アカウントである必要があります。 管理者または別のユーザーとしてアプリを起動する方法については、「 実行を使用して管理者としてアプリを起動する」を参照してください。
接続が成功すると、関連するすべての SPN が次のスクリーンショットに表示されます。
このスクリーンショットでは、UI には次のタブがあります。
システム: ユーザー情報とマシン情報を表示します。
SPN: ターゲット サーバー上にある各SQL Server インスタンスに関するサービス プリンシパル名 (SPN) 情報を表示し、必要な SPN とその状態などの詳細を提供します。
生成: 不足している SPN と構成済みの SPN を見つけるのに役立ちます。 また、SPN 生成スクリプトを生成するのにも役立ちます。
- [生成する] を選択します。
- 開いたダイアログ ボックスで、名前 (この場合は "generateSPNs") を指定し、[ 名前を付けて保存] の種類 を Kerberos Config Mgr(.cmd) ファイルとして設定し、[保存] を選択 します。
generateSPNss.cmd ファイルが作成され、コマンド プロンプトでこのファイルを実行できます。 generateSPNss.cmd ファイルの内容は、次の例のようになります。
:: This script is generated by the Microsoft® SQL Server® Kerberos Configuration Manager tool.
:: The script may update the system information, SPN settings and Delegation configurations of a given server.
:: SPN and Delegation configuration updates require Windows Domain Administrator permission to execute.
:: A Domain Admin should review the configurations recommended by this tool and take appropriate actions to enable Kerberos authentication.
:: Please contact Microsoft Support if Kerberos connection problem persists.
:: The file is intended to be run in domain `<DomainName>.com`"
:: Corrections for MSSQLSvc/`<HostName>.<DomainName>.com` **SetSPN -s MSSQLSvc/`<HostName>`. `<DomainName>`.com UserName**
SetSPN を使用して、SQL Serverのサービス アカウントの下に SPN を作成します。
修正を使用して問題を修正し、SPN を追加します。 SPN は、必要なアクセス許可がある場合にのみ追加できます。 [修正] を選択すると、次のツール ヒントが表示されます。
注:
このツールは、静的ポートを持つ既定のインスタンスと名前付きインスタンスに対してのみ 、Fix コマンドと Generate コマンドを提供します。 動的ポートを使用する名前付きインスタンスの場合は、動的ポートから静的ポートに切り替えるか、SQL サービスが開始されるたびにサービス アカウントが SPN を登録および登録解除するために必要なアクセス許可を提供することをお勧めします。 それ以外の場合は、サービスが開始されるたびに、対応する SPN の登録を手動で登録解除し、再登録する必要があります。 詳細については、「Kerberos Connectionsのサービス プリンシパル名を登録する」を参照してください。
委任: 委任を使用して、 サービス アカウントの委任の構成に影響を与える問題を特定します。 これは、リンク サーバーの問題のトラブルシューティングに特に役立ちます。 たとえば、SPN チェックアウトは問題なく、リンク サーバー クエリに影響する問題が引き続き発生する場合は、サービス アカウントが資格情報を委任するように構成されていないことを示している可能性があります。 詳細については、「 委任用のリンク サーバーの構成」のオンライン ブックに関するトピックを参照してください。
Kerberos Configuration Managerからの診断の解釈と対応
[状態] 列を参照して、ツールからの診断を確認します。 状態に基づいて、適切な手順に従って問題を解決します。
状態 - 良好
詳細情報: チェックされた項目が正しく構成されています。 出力の次の項目に移動します。
アクション: アクションは必要ありません。
状態 - 必要な SPN が見つかりません
詳細情報: この状態は、[必須 SPN] 列に記載されているサービス プリンシパル名 (SPN) が Active Directory のSQL Serverスタートアップ アカウントに存在しない場合に報告されます。
アクション: 次の手順に従って、SPN の問題が解決されるかどうかをチェックします。
- [ 修正 ] を選択して、[ 警告 ] ダイアログ ボックスの情報を確認します。
- [ はい] を 選択して、不足している SPN を Active Directory に追加します。
- ドメイン アカウントに Active Directory を更新するために必要なアクセス許可がある場合、必要な SPN が Active Directory に追加されます。
- ドメイン アカウントに Active Directory を更新するために必要なアクセス許可がない場合は、 Generate またはGenerate All を使用して、Active Directory 管理者が不足している SPN を追加するのに役立つスクリプトを生成します。
- SPN が追加されたら、Kerberos Configuration Managerをもう一度実行して、SPN の問題が解決されたことを確認します。
状態 - Kerberos 構成を使用するには TCP を有効にする必要があります。
詳細情報: この状態は、クライアント コンピューターで TCP が有効になっていない場合に表示されます。
アクション: 次の手順に従って、SQL Server インスタンスの TCP/IP プロトコルを有効にします。
[SQL Server 構成マネージャー - コンソール] で、[ネットワーク構成SQL Server展開します。
コンソールで、 の [プロトコル
<instance name>
] を選択します。[ 詳細] で [ TCP/IP ] を選択し、[ 有効] を選択します。
[コンソール] で、[SQL Server サービス] を選択します。
[詳細] で、 のSQL Serverを
<instance name>
選択します。[再起動] を選択して、SQL Server サービスを停止して再起動します。 詳細については、「 サーバー ネットワーク プロトコルを有効または無効にする」セクションを参照してください。
状態 - 動的ポート
詳細情報: この状態は、動的ポート (既定の構成) を使用する名前付きインスタンスに対して表示されます。 Kerberos を使用してSQL Serverに接続する必要がある環境では、静的ポートを使用するように名前付きインスタンスを設定し、SPN を登録するときにそのポートを使用する必要があります。 それ以外の場合、Active Directory に登録されている SPN は、次に、名前付きインスタンスが SPN が登録されているポート以外の新しいポートでリッスンを開始すると無効になります。
注:
この推奨事項は、手動の SPN 登録に依存する環境にのみ適用されます。
アクション: 静的ポートを使用するようにSQL Server インスタンスを構成するには、次の手順に従います。
-
[SQL Server 構成マネージャー - コンソール] で、[ネットワーク構成のSQL Server] を展開し、[プロトコル] を
<instance name>
展開して、[TCP/IP] をダブルクリックします。 - [TCP/IP プロパティ] で、[プロトコルですべてリッスン] を選択します。
- [すべてリッスン] が [はい] に設定されている場合は、[IP アドレス] に切り替え、ウィンドウの下部までスクロールして [IPAll] 設定を見つけます。
- TCP 動的ポートの現在の値を削除し、TCP ポートにポート番号を入力します。
- [OK] を選択し、SQL Server インスタンスを再起動します。 詳細については、「特定の TCP ポートでリッスンするようにサーバーを構成する」を参照してください。
- [すべてリッスン] が [いいえ] に設定されている場合は、[IP アドレス] に切り替え、IP1 ノードと IP2 ノードに表示されるすべての IP アドレスをチェックします。 [有効] に設定されているアドレスの場合は、TCP 動的ポートの現在の値を削除し、[TCP ポート] で値を設定します。
- [OK] を選択し、設定を有効にするためにSQL Server インスタンスを再起動します。 詳細については、「特定の TCP ポートでリッスンするようにサーバーを構成する」を参照してください。
-
[SQL Server 構成マネージャー - コンソール] で、[ネットワーク構成のSQL Server] を展開し、[プロトコル] を
状態 - 重複する SPN
詳細情報: 同じ SPN が Active Directory の別のアカウントに登録されている場合、このシナリオが発生する可能性があります。
アクション: 次の手順に従って、ACTIVE Directory に SPN を追加します。
[ 修正] を選択します。
[ 警告 ] ダイアログ ボックスで情報を確認します。
[ はい] を 選択して、不足している SPN を Active Directory に追加します。
ドメイン アカウントに Active Directory を更新するために必要なアクセス許可がある場合、正しくない SPN が削除されます。
ドメイン アカウントに Active Directory を更新するために必要なアクセス許可がない場合は、[ 生成] または [ すべて生成 ] を使用して、Active Directory 管理者に提供できる必要なスクリプトを生成して、重複する SPN を削除します。
SPN が削除されたら、Kerberos Configuration Managerを再実行して、SPN の問題が解決されたことを確認します。
注:
SQL Server データベース エンジンのインスタンスが起動すると、SQL Serverは SQL Server サービスの SPN の登録を試みます。 インスタンスが停止すると、SQL Serverは SPN の登録解除を試みます。 これを行うには、SQL Server サービス アカウントに Active Directory の適切なアクセス許可が必要です。 ただし、サービス アカウントにこれらの権限がない場合、SPN の自動登録は行われず、SQL インスタンスが Kerberos 認証を有効にできるように、Active Directory 管理者と協力してこれらの SPN を登録する必要があります。 詳細については、「Kerberos Connectionsのサービス プリンシパル名を登録する」を参照してください。
注:
SQL がクラスター化されている環境では、SPN の登録を解除し、Active Directory で SPN を再登録するのに時間がかかる場合があるため、SQL Serverオンラインになる時間よりも多くの時間がかかる可能性があるため、SPN の自動登録はお勧めしません。 SPN 登録が時間内に発生しない場合、クラスター管理者がSQL Server インスタンスに接続できないため、SQL Serverがオンラインにならない可能性があります。
追加オプション
コマンド ラインから SPN リストを生成するには:
コマンド ラインに移動します。
注:
SSRS に影響する接続の問題をトラブルシューティングするには、管理コマンド プロンプト ウィンドウを開きます。
を含むフォルダーに切り替 KerberosConfigMgr.exe。
KerberosConfigMgr.exe -q -l
を入力します。その他のコマンド ライン オプションについては、「」と入力します
KerberosConfigMgr.exe -h
。
サーバーの Kerberos 構成情報を保存するには:
- ターゲット Windows サーバーに接続します。
- [保存] を選択します。
- ファイルを保存する場所を指定します。 ローカル ドライブまたはネットワーク共有上に存在できます。 ファイルは .xml 形式で保存されます。
保存されたファイルからサーバーの Kerberos 構成情報を表示するには:
- [ 読み込み] を選択します。
- Kerberos Configuration Managerによって生成された XML ファイルを開きます。
このツールのログ ファイルを表示するには:
既定では、アプリケーションがアプリケーション データ フォルダー ( %APPDATA%\Microsoft\KerberosConfigMgr) で実行されるたびに、1 つのログ ファイルが生成されます。
ヘルプを表示するには、次のいずれかの方法を使用します。
- コマンドの上にマウス ポインターを合わせると、ヒントが生成されます。
- コマンド プロンプトで を実行
KerberosConfigMgr.exe -h
します。 - ツール バーの [ ヘルプ ] ボタンを選択します。