SQL Server 2008 Developerエディションをインストールしたばかりで、SQLCMD.exeを使用して接続しようとしていますが、次のエラーが発生します。
H:\>sqlcmd.exe -S ".\SQL2008"
Msg 18452, Level 14, State 1, Server DEVBOX\SQL2008, Line 1
Login failed. The login is from an untrusted domain and cannot be used with Windows authentication.
SQL Serverインスタンスは、SQL ServerおよびWindows認証モードを使用するように構成されています。 -U saを指定すると、正常にログインできますが、Windows認証を使用したいと思います。 SSMSとWindows認証を使用した接続は、正常に機能しているようです。
この問題が発生したのは、アプリケーションを実行しているマシンがActive Directoryによるドメインの委任に対して信頼されていないためです。たとえば、アプリケーションプールID DOMAIN_application.environmentの下で実行されている.netアプリの場合、マシンが信頼されていない限り、IDはSQLを呼び出すことができません。
Sqlcmd.exeに資格情報を渡していない
したがって、Windowsログイン資格情報を使用してユーザーを認証しようとしていますが、それらの資格情報を受け入れるようにSQL Serverをセットアップする必要はありません...
インストールするときに、サーバー管理者のパスワード(sa
アカウント用)を入力する必要がありました。
試してみてください...
sqlcmd.exe -U sa -P YOUR_PASSWORD -S ".\SQL2008"
参考のために、詳細があります here ...
私の場合、このエラーはクライアントマシンの名前を変更したことが原因でした。 13文字を超える新しい名前を使用しましたが(警告にもかかわらず)、NETBIOS名が切り捨てられ、完全なマシン名とは異なりました。クライアントの名前を短い名前に変更すると、エラーはなくなりました。
ちょうどこれを試しました:
H:> "C:\ Program Files\Microsoft SQL Server\90\Tools\Binn\sqlcmd.exe" -S "。\ SQL2008" 1>
動作します。(パスにMicrosoft SQL Server\100\Tools\Binnディレクトリがあります)。
しかし、SQL Server 2008バージョンのSQLCMDが機能しない理由はまだわかりません。
エラーは文字通り「Windows認証を使用しようとしていますが、ログインは信頼できるドメインからではありません」と言っています。ローカルマシンに接続しているので、これは奇妙です。
おそらく、ドメインアカウントではなくローカルアカウントを使用してWindowsにログインしていますか? SQL2008インスタンスのSQL Serverプリンシパルでもあるドメインアカウントでログインしていることを確認します。
私もこのエラーが発生しましたが、私の問題は、仮想マシンを介して2つの企業ネットワーク間をアクセス資格情報が異なるまま切り替え続けることでした。コマンドプロンプトを実行する必要がありました。
ipconfig /renew
この後、ネットワークの問題は解決され、SQLにもう一度接続できました。
ログオンするユーザー名とパスワードを指定していますか?あなたの完全なコマンドラインは正確には何ですか?
独自のボックスで実行している場合は、ユーザー名/パスワードを指定するか、-E
パラメータを使用してWindows資格情報でログオンします(SQLサーバーのインストールで許可されている場合)。
マーク
ちょうどこのスレッドを見つけて、ここに別の回答(以下にコピー)を投稿しました: https://stackoverflow.com/a/37853766/1948625
特にこの質問では、コマンドラインの.
値で使用されているドット "-S
"が127.0.0.1
と同じ意味の場合、接続文字列と同じ問題である可能性があります他の質問。代わりにホスト名を使用するか、hostsファイルを確認してください。
古い質問と私の症状は少し異なりますが、同じエラーです。私の接続文字列はdata source
が127.0.0.1
に設定された正しいものでした(統合セキュリティ、およびユーザーとpwdは提供していません)。それは何年もの間うまくいった。
しかし、最近、テスト目的で静的ホストファイルに行を追加しました(C:\Windows\System32\drivers\etc\hosts
)
127.0.0.1 www.blablatestsite.com
この行を削除するとエラーはなくなります。
ホスト名とループバックについて話しているこの記事( https://support.Microsoft.com/en-gb/kb/896861 )から手がかりを得ました。
他の可能な修正(hostsファイルでその行を保持する必要がある場合)は、接続文字列のMYSERVER01
で127.0.0.1
の代わりにホスト名(data source
など)を使用することです。