114

マシン A から SQL Server を実行しているマシン B への SQL Server 接続を取得するのに苦労しています。

私は広範囲にグーグルで検索しましたが、見つけたものはすべて機能しませんでした. また、これを解決するプロセスを順を追って説明することもありません。

Kerberos を使用していませんが、NTLM が構成されています。

ここに画像の説明を入力

関連するマシンは次のとおりです (xx は、セキュリティ上の目的でマシン名の一部を隠すために使用されます)。

  • xxPRODSVR001 - Windows Server 2012 ドメイン コントローラー
  • xxDEVSVR003 - Windows Server 2012 (このマシンはエラーを生成しています)
  • xxDEVSVR002 - Windows Server 2012 (このマシンは SQL Server 2012 を実行しています)

次の SPN が DC (xxPRODSVR001) に登録されています。セキュリティ上の理由から、ドメインを yyy で隠しています。

CN=xxDEVSVR002、CN=Computers、DC=yyy、DC=local の登録済み ServicePrincipalNames:

            MSSQLSvc/xxDEVSVR002.yyy.local:49298

            MSSQLSvc/xxDEVSVR002.yyy.local:TFS

            RestrictedKrbHost/xxDEVSVR002

            RestrictedKrbHost/xxDEVSVR002.yyy.local

            Hyper-V Replica Service/xxDEVSVR002

            Hyper-V Replica Service/xxDEVSVR002.yyy.local

            Microsoft Virtual System Migration Service/xxDEVSVR002

            Microsoft Virtual System Migration Service/xxDEVSVR002.yyy.local

            Microsoft Virtual Console Service/xxDEVSVR002

            Microsoft Virtual Console Service/xxDEVSVR002.yyy.local

            SMTPSVC/xxDEVSVR002

            SMTPSVC/xxDEVSVR002.yyy.local

            WSMAN/xxDEVSVR002

            WSMAN/xxDEVSVR002.yyy.local

            Dfsr-12F9A27C-BF97-4787-9364-D31B6C55EB04/xxDEVSVR002.yyy.local

            TERMSRV/xxDEVSVR002

            TERMSRV/xxDEVSVR002.yyy.local

            HOST/xxDEVSVR002

            HOST/xxDEVSVR002.yyy.local

CN=xxDEVSVR003、CN=Computers、DC=yyy、DC=local の登録済み ServicePrincipalNames:

            MSSQLSvc/xxDEVSVR003.yyy.local:1433

            MSSQLSvc/xxDEVSVR003.yyy.local

            Hyper-V Replica Service/xxDEVSVR003

            Hyper-V Replica Service/xxDEVSVR003.yyy.local

            Microsoft Virtual System Migration Service/xxDEVSVR003

            Microsoft Virtual System Migration Service/xxDEVSVR003.yyy.local

            Microsoft Virtual Console Service/xxDEVSVR003

            Microsoft Virtual Console Service/xxDEVSVR003.yyy.local

            WSMAN/xxDEVSVR003

            WSMAN/xxDEVSVR003.yyy.local

            TERMSRV/xxDEVSVR003

            TERMSRV/xxDEVSVR003.yyy.local

            RestrictedKrbHost/xxDEVSVR003

            HOST/xxDEVSVR003

            RestrictedKrbHost/xxDEVSVR003.yyy.local

            HOST/xxDEVSVR003.yyy.local

ここで、SQL Server のエラー メッセージがより説明的で、接続しようとしているプリンシパル名を教えてくれれば、これを診断できるかもしれません。

それで、誰かがこれを解決する方法を教えてもらえますか、それとも私が提供したものに何か間違っていることがわかりますか?

デバッグ情報をさらに生成できれば幸いです。必要なものを教えてください。

4

49 に答える 49

73

私が取り組んでいた ASP.NET MVC アプリでこの問題が発生しました。

最近パスワードを変更したことに気付き、ログアウトしてから再度ログインすることで修正できました。

于 2017-04-14T21:28:19.003 に答える
7

この問題は、Windows 資格情報の問題のようです。VPN を使用している職場のラップトップでも同じエラーが発生していました。ドメイン/ユーザー名としてログインしていると思われます。これは、直接接続するときに正常に使用するものですが、別の接続で VPN に移動するとすぐにこのエラーが発生します。サーバーにpingを実行できるため、DNSの問題だと思いましたが、コマンドプロンプトからユーザーとしてSMSSを明示的に実行する必要があることがわかりました。

例 runas /netonly /user:YourDoman\YourUsername "C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\Ssms.exe"

于 2020-03-03T01:45:13.770 に答える
2

同じ問題がありましたが、マシンのロックとロック解除がうまくいきました。場合によっては、ファイアウォールの問題によってエラーが発生することがあります。

私の経験を共有するだけで、それがあなたに役立つかどうかはわかりません.

于 2017-12-11T16:28:58.027 に答える
1

私は今日これに遭遇し、私の修正を共有したいと思いました.

私たちは独自の rDNS を管理し、最近サーバーの命名方式を変更しました。その一環として、rDNS を更新する必要がありましたが、これを行うのを忘れていました。

ping では正しいホスト名が返されましたが、ping -a では間違ったホスト名が返されました。

簡単な修正: rDNS を変更し、ipconfig /flushdns を実行し、30 秒待って (私がしていることです)、別の ping -a を実行し、正しいホスト名が解決されるのを確認し、接続して ... 利益を得ます。

于 2016-09-25T22:41:02.793 に答える
1

私の場合、開発環境で作業していたので、誰かがドメイン コントローラーをシャットダウンし、Windows 資格情報を認証できませんでした。ドメイン コントローラーをオンにすると、エラーがなくなり、すべてが正常に機能しました。

于 2020-02-21T20:01:53.327 に答える
1

「SQL Server 構成マネージャー」から「名前付きパイプ」が有効になっていることを確認します。これは私にとってはうまくいきました。

  1. 「SQL Server 構成マネージャー」を開きます。
  2. 左のリストから「SQL Server Network Configuration」を展開します。
  3. 「[インスタンス名] のプロトコル」を選択します。
  4. 右側のリストから「名前付きパイプ」を右クリックします。
  5. 「有効にする」を選択
  6. インスタンス サービスを再起動します。
于 2019-04-12T13:08:31.060 に答える
1

私の場合、問題はwifiでDNSを設定することでした。設定を削除し、空のままにして作業しました。

DNS の構成を簡単にする

于 2019-01-15T09:43:35.430 に答える
1

私はこれのために新しいものに出くわしました:Server 2012でホストされているSQL 2012。SQL AlwaysOn用のクラスターを作成する任務を負っていました。
クラスターが作成され、全員が SSPI メッセージを受け取りました。

問題を解決するには、次のコマンドを実行しました。

setspn -D MSSQLSvc/SERVER_FQNName:1433 DomainNamerunningSQLService

DomainNamerunningSQLService== SQL 用に設定したドメイン アカウント コマンドを実行するには、ドメイン管理者が必要でした。クラスター内の 1 つのサーバーのみに問題がありました。

その後、SQL を再起動しました。驚いたことに、接続できました。

于 2017-01-09T21:05:56.923 に答える
0

この問題の変種に遭遇しました。特徴は次のとおりです。

  • ユーザーは名前付きインスタンスに正常に接続できました。たとえば、への接続Server\Instanceが成功しました
  • ユーザーがデフォルトのインスタンスに接続できませんでした。たとえば、ServerSSPI に関する OP のスクリーンショットで接続が失敗しました。
  • ユーザーが完全修飾名を持つデフォルト インスタンスに接続できませんでした。たとえば、接続にServer.domain.com失敗しました (タイムアウト)
  • ユーザーは名前付きインスタンスなしで IP アドレスに接続できませんでした。たとえば、接続に192.168.1.134失敗し ました
  • ドメインに参加していない他のユーザー (ネットワークに VPN 接続しているユーザーなど) が、ドメインの資格情報を使用して、既定のインスタンスと IP アドレスに正常に接続できた

そのため、この単一のユーザーが接続できなかった理由を突き止めようとする多くの頭痛の種の後、状況を修正するために私たちが取った手順は次のとおりです。

  1. a を使用して、SPN リスト内のサーバーを確認します
    setspn -l Server
    。私たちの場合、それは言ったServer.domain.com
  2. にあるホスト ファイルにエントリを追加しますC:\Windows\System32\drivers\etc\hosts(このファイルを変更するには、管理者としてメモ帳を実行します)。追加したエントリは
    Server.domain.com Server

この後、SSMS 経由でデフォルト インスタンスに正常に接続できました。

于 2016-12-07T19:39:26.707 に答える
0

まったく理想的な解決策ではありません。このページを見ている人のために、将来の参考のためにこれを追加したかっただけです。

ドメイン アカウントを使用してリモート SQL Server インスタンスに接続しようとすると、この問題が発生し、別のマシンでホストされているインスタンスで同じことを試みても問題なく動作しました。

したがって、別のインスタンスを使用するオプションがあれば、それは役立つかもしれませんが、これは実際には問題が何であれ対処しません.

于 2018-08-30T14:55:18.580 に答える
0

Windows認証でログを記録しているときに、SQL Server 2014でもこの問題が発生しました。問題を解決するために、サーバーを一度再起動してからログインしようとすると、うまくいきました。

于 2017-06-27T08:30:45.787 に答える
0

私はこの問題を抱えており、このエラー メッセージの根本原因を見つけるのに約 4 ~ 5 時間かかりました。唯一の違いは、SQL Server Management Studio を介して直接ではなく、Visual Studio からのみ DB に接続しているときにこのエラーが発生したことです。

エラーの原因は、アプリケーションがローカル IIS でホストされていて、システム パスワードを 1 日前に変更したのに、ホストされているアプリケーションの IIS アプリケーション プールに更新していないことです。

IIS に移動し、アプリケーション プールをクリックし、プール リストで適切なアプリケーション プールを右クリックして、[詳細設定] に移動し、[ID] を選択して、[カスタム アカウント] の下の値 (ドメイン\アカウント名と新しいパスワード) を変更しました。私の問題を解決しました。

ありがとう

于 2020-02-26T14:01:09.050 に答える
0

SQL Server 2014 でも同じ問題が発生し、アプリケーションを管理者として実行するだけで済みました。

于 2021-01-19T17:35:08.477 に答える
-2

SQL サーバー管理スタジオで上記のログイン名の権限を確認し、sysadmin チェックボックスをオンIntegrated Security=Falseにしてから、.config ファイルを作成してください。

クライアント マシンで 2 つのコマンドを実行する

  1. ipconfig /flushdns

  2. klist パージ。

クライアント コンピューターに kerbarose 構成マネージャーをインストールします。

最後に、クライアント マシンとメインの SQL サーバー サービスを再起動します。クライアント マシンでアプリケーションを実行します。これは 100% 正しく動作します。

于 2017-11-10T09:23:47.217 に答える