エラー:SSPIコンテキストを生成できません


8

誰かがSQL Serverインスタンスに接続しようとすると、エラーが表示されます。

SSPIコンテキストを生成することはできません。

昨日、停電があり(この表現を英語でどう言うかわからない)、サーバーをシャットダウンする必要がありました。

答えを探して、私はこれを見つけました:

SQL Server 2008の接続の問題:SSPIコンテキストを生成できません

しかし、彼らは昨日までうまく機能しているので、私には役に立ちません。何も変えたくない。しかし、もし必要なら、私はそれを変えます。

Obs:サーバーを再起動できません。


編集:私の回答以来、エラーは発生していません。


サーバーを再起動できません。500人以上のユーザーがオンラインにいます。どうしたらいいかわからない。インターネットでは何も役に立たない。
レーサーSQL

1
サーバー自体からグループポリシーを設定して、ユーザーの時間を自動的に変更します。サーバーを再起動してグループポリシーを強制的に変更したくない場合は、を使用できますgpupdate /force。この美しいテーマについては、ここで詳しく説明しますが、このタスクをサーバーマネージャーに任せることを強くお勧めします。
Nelz、2015

回答:


14

「SSPIコンテキストを生成できません」は一般的なエラーです。これは、古いパスワード、時計のずれ、Active Directoryのアクセス許可、SPNの登録の失敗など、多くの問題が原因で発生する可能性があります。

この問題の解決策はありません。唯一の「解決策」は、KB811889および/またはKerberosエラーのトラブルシューティングに従って原因を調査することです。原因を理解せずに、ランダムなインターネットリソースから1つのソリューションまたは別のソリューションを適用すると、問題が解決する場合としない場合があり、不満を引き起こす場合とそうでない場合があり、取り返しのつかない損傷を引き起こす場合とそうでない場合があります。


2
回答->ランダムなインターネットリソースから何らかの解決策を適用すると、原因を理解できず、問題が解決する場合もあれば、解決しない場合もあり、不満が生じる場合もあれば、取り返しのつかない損傷が生じる場合もあれば、そうでない場合もあります。Response-> "SQL SERVICEユーザーを" Domain Admin "に変更しました。" -ooooo-kaay。
マタオ2016

3

SQL SERVICE userDomain Admin」に変更しました。

これがなぜ起こるのかを知るためにいくつかの調査を行いました。それはあなたがサービスをシャットダウンするとき、あなたは特権を持つアカウントが必要です(それが再びオンになるとき)新しいSPNを作成することを言います。それなしでサービスを開始すると、CANNOT GENERATE SSPI CONTEXTに表示されます。

システムアカウントの権限を変更しています。

それが誰かを助けることを願っています。


8
サービスアカウントの良い習慣は、可能な限り最小限の権限を与えることです。サービスアカウントにドメイン管理者を提供することは、そのアプローチの逆です。セキュリティの観点から、そうすることはお勧めしません。
マイク

2

PRODからデータベースを取得してQAで復元したところ、この問題が発生しました。私たちのアプリケーションは3つのサーバー上の3つのデータベースを呼び出しましたが、それ以外は複雑ではありませんでした。

偽のSPN(サービスプリンシパル名)が、接続が実行されているはずのサービスアカウントを妨害していることがわかりました。これは、Program Files> Microsoft Kerberos Config Managerを使用して発見しました。

短期的な修正は、SQL Server構成マネージャーを使用し、SQL ServerとSQL Serverエージェントの接続をサービスアカウントから[Use BuiltIn Account]の[LocalSystem]に変更することでした。


1

SSPIコンテキストを生成できないということは、まさにそれを意味する可能性があります。クライアントがSQLサーバーに接続するとき、クライアントはサービスタイプ(MsSQLsvr)サーバーのFQDNとポートを含む生成方法を使用します。DNSを使用してサーバー名を生成するため、CNAMEやホストファイルなどが原因で名前が正しく解決されない場合、生成は失敗します。目的のサーバーに対してpingを実行し、返される応答を確認します。SQLサーバーのFQDNでない場合、SPNが正しく生成されず、このエラーが発生します。


1

状況によっては、SPN設定が原因でこのエラーが発生します。たとえば、新しいサーバーに対して災害復旧テストを行っている場合、SQL Serverへの接続中にSSPIエラーが発生する可能性があります。さらに奇妙なのは、SQL Server Management Studioを使用して接続できる可能性があるが、ODBCまたはOLEDBを介して接続できないことです。おそらくデータベースにアクセスできる一時的な回避策があるかもしれません。

回避策:SQL Serverに接続しようとしている各クライアントコンピューターで、各ワークステーションのホストファイルにエントリを作成します。これが問題の修正に使用する正確なメカニズムは確認されていませんが、それを使用するとSPNの必要性が無効になる可能性があります。

これがすべてのケースで修正されることは保証されていませんが、ほとんどの場合、復旧して実行されます。これは恒久的な修正とは見なされません。理想的な状況では、SPNまたはその他の問題を解決する必要があります。ただし、サポートされていないオペレーティングシステムを実行している古いWindowsマシンで問題が発生している場合、または概念実証の災害復旧テストを実行している場合は、ライトをオンにしておくか、本番環境を稼働させておく必要があります。


これが回避策であることを繰り返し述べたいと思います。回避策は永続的な修正ではありません。将来的に問題を少なくしたい場合は、私の経験ではSPNに関連する根本的な問題を修正する必要があります。
Jason Geiger

マシン名をマシンIPにマッピングするエントリ?
Bill Greer

1

この問題が発生し、サーバーのADのコンピューターアカウントの属性でSPNエントリを削除することで解決しました

ADユーザーとコンピューターでコンピューターアカウントを検索する(詳細ビュー)

ここに画像の説明を入力してください

次に、MSSQLSvcのservicePrincipalNameの2つのエントリを削除します。

ここに画像の説明を入力してください


0

同様の問題がありました。ADSIEditでコンピューターアカウントのSPN情報からエントリを削除する必要がありました。

エントリを削除した後、SQLサービスを再起動し、作成したドメインリソースアカウントでSPNを登録しました。その後、リモートでSQL Serverにアクセスできました。


0

私にとっての解決策は、次のコマンドを使用してSQL Studioをドメインユーザーとして実行することでした。

runas / user:OtherDomain \ User SSMS.exe


0

最近この問題を経験しました。NTサービスアカウントとして実行していて、サービスアカウントを使用するように切り替えたときに、SSMSを使用してマシン名またはFQDNで接続できなくなりました。IPアドレスで接続できました。掘り下げてみると、SQLインスタンスのActive DirectoryのSPNがマシンに登録されていることがわかりました。これを削除してサービスアカウントに追加し、SQLマシンを再起動すると、すべてが正常に機能しました。必要に応じて詳細をお知らせいたします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.