none
「SSPIコンテキストを生成できません」の対処方法について

    質問

  • VC#で作成したアプリでファイルサーバ上のSQLServerにアクセスするシステムを運用しています。

    十数台のクライアントPCのほとんどのOSはWindows7で2台のPCがWindows7から10へ無償アップデートした環境で問題なく運用していました。

    この度、Windows7のPCの1台をWindows10に交換しました。 このPCでシステムを起動しSQLServerに接続する時に「SSPIコンテキストを生成できません」のメッセージが表示されて処理が中断します。

    原因を特定できずにいます。対処方法をご存知の方がいらっしゃいましたらご教授頂けないでしょうか。

    原因を調査中に次のページを参照しましたが対応方法が理解できませんでした。

    https://support.microsoft.com/ja-jp/help/811889/how-to-troubleshoot-the-cannot-generate-sspi-context-error-message

    どうぞ宜しくお願い致します。

                                                                sada4



    2018年1月12日 8:44

すべての返信

  • チャブーンです。

    この件ですが、MSKBの資料ベースの話しであれば、SQL ServerをホストしているサーバーのService Principal Name(SPN)を確認してください、ということになります。

    ドメインに参加している場合、SQL ServerはKerberos認証でアクセスするので、認証先サービスを示すSPNが必要です。インストール時にSPN設定はされているはずですが、これが想定されたものと違うと、Kerberos認証に失敗しアクセスできません。確認方法は

    setspn -L <SQL Serverコンピューター名>

    で一覧がでるでしょう。ドメインコントローラー上で実施してください。

    MSSQLSvc/<SQL Serverコンピューター名FQDN>:1433
    MSSQLSvc/<SQL Serverコンピューター名(ホスト名)>:1433
    

    これ以外で(ものとしてはこれ以外もあります)、あたまに「MSSQLSvc」とあるものについては、削除してください。ない場合、うえ2つを追加します。これもsetspnを使いますが、使い方はしたのページを参考にしてください。

    https://blogs.msdn.microsoft.com/crmjapan/2010/01/28/5073/

    ちなみにアクセス許可うんぬん、ですが認証の問題ではなくて、(本来自動で登録されるべき)挙動がうまくいっていない場合、こういったところを直さないと、SQL Serverの管理ツールなどから再セットアップを行う際にうまくいかないですよ、という話しです。頻繁にセットアップをやり直す環境でなければ、とくに必要ありません。

    で、これの設定に問題がない場合ですが、Windows 10クライアントの設定に問題ある可能性があります。KerberosのSPNが引ける必要要件に、「Active Directory DNSサーバーからのみ名前解決する」項目があります。Windows 10クライアントの参照先DNSサーバーにドメインコントローラ以外が含まれている場合、その設定は外してください。(あるかどうかはわかりませんが)Windows 7では問題ないから大丈夫、とは考えないようにしてください。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    2018年1月14日 6:59
  • チャブーン様 質問への返信を頂き有難うございます。
    問題が発生している環境が遠方のため、リモートにより問題解決を試みているのですが思うように作業が進んでおりません。
    そこで、近日中に現地に赴いて対応することとしました。
    大変恐縮ですがそれまでこの件につきましては保留とさせて頂きたくお願い致します。
    現地作業の結果につきましてはその時点でご報告、又は質問をさせて頂きますので宜しくお願い致します。
    11 時間 1 分前