昨夜停電があり、サーバーが復旧したとき、ドメインユーザーはSQL Server 2000インスタンス名MASSQLにアクセスできませんでした。
SQL認証を使用してアクセスできます。
また、問題のあるSQL Serverインスタンスに対して次のコマンドを実行しました。
setspn -L xsql2
結果
CN = MASSQL、CN = Computers、DC = ABC、DC = comの登録済みServicePrincipalNames: Host/MASSQL Host/MASSQL.ABC.COM
問題のないSQLインスタンスに対して次のコマンドを実行しました。
setspn -L xensql1
結果
CN = XENSQL1、CN = Computers、DC = ABC、DC = comの登録済みServicePrincipalNames: WSMAN/XENSQL1 WSMAN/XENSQL1.ABC.com RestrictedKrbHost/XENSQL1 Host/XENSQL1 RestrictedKrbHost/XENSQL1.ABC.COM Host/XENSQL1.ABC.COM
問題のないインスタンスの結果には、より多くのデータがあるようです。これが2000年であり、もう1つが2012年であるという事実と関係があるのかどうかはわかりません。
何が起こったのでしょうか?ドメインユーザーに再度ログインを許可するにはどうすればよいですか?
使用する setspn -X
対象のSQL Serverの重複するSPNを検索します。
問題のSQL Serverサービスアカウントと一致しない重複したSPNを削除します。
SQL Serverのサービスプリンシパル名は、次の形式を取ります。
MSSQLSvc/server.domain:port MSSQLSvc/server:port
SQL ServerがデフォルトのTCPポート、1433を使用していると仮定すると、次のサーバーが必要になると思います。
MSSQLSvc/MASSQL.abc.com:1433 MSSQLSvc/MASSQL:1433
これらのSPNは、次のコマンドを使用して作成できます。
SETSPN -A MSSQLSvc/MASSQL.abc.com:1433 DOMAIN\Account SETSPN -A MSSQLSvc/MASSQL:1433 DOMAIN\Account
DOMAIN\Accountは、SQL Serverが使用するサービスアカウントの名前です。
SQL Serverが名前付きインスタンスを使用する場合、SETSPNコマンドは次のようになります。
SETSPN -A MSSQLSvc/MASSQL.abc.com:1433 DOMAIN\Account SETSPN -A MSSQLSvc/MASSQL:1433 DOMAIN\Account SETSPN -A MSSQLSvc/MASSQL.abc.com:INSTANCENAME DOMAIN \アカウント SETSPN -A MSSQLSvc/MASSQL:INSTANCENAME DOMAIN\Account
SQL Server SPNは、コンピューターアカウント自体には設定されていませんではなく、SQL Serverが実行されているアカウントに設定されています。サービスアカウントにSPNを作成する権限がない場合は、SQL Serverサービス用に2つのSPNを作成する必要があります。次の例では、デフォルトのポート1433を使用することを想定しています。
SetSPN -s "MSSQLSvc/<FQDN_SERVERNAME>" "<DOMAIN>\<SERVICE_ACCOUNT_NAME>"
SetSPN -s "MSSQLSvc/<FQDN_SERVERNAME>:1433" "<DOMAIN>\<SERVICE_ACCOUNT_NAME>"
Kerberos接続のサービスプリンシパル名の登録 を参照してください。
それらがすでにそこにあるかどうかを確認するには:
SetSPN -L ServiceAccountName
しかし、あなたはより大きな問題を抱えているようです。ドメイン管理者アカウントで実行するようにSQL Serverを構成した場合は、SPNを作成する権限が必要です。
同じエラーが発生し、すぐに修正されました。
私は仮想サーバー環境で作業していましたが、Power Shellを使用してSQLスクリプトを実行していました。私の場合、RDP接続を切断して仮想サーバーに再接続しただけで、エラーは消えました。
Microsoftの SQL ServerのKerberos構成マネージャー は、この問題をすばやく診断して修正するのに役立ちます。
これは読むのに良い話です: http://houseofbrick.com/Microsoft-made-an-easy-button-for-spn-and-double-hop-issues/