SQL Server のODBC データソースの「テスト接続」がエラーで失敗するときの解決方法(原因?)の一つ。
▼ 事象
上記どおり、データソースの「テスト接続」をしたときに、
?「ユーザー ” のログインに失敗しました。理由 : SQL Server の信頼関係接続に関連付けられていません。」
というメッセージが表示されエラーに接続に失敗する。 テスト接続に失敗しているのに何故か他のサーバー(マシン)からのデータソース接続は成功する。
▼ 原因
おそらくAdministratorユーザでテストしていると思うが、この Administratorの認証に失敗していることが原因。
ローカルのユーザなのに何故??
それは、ローカルなのに外部からの接続になっているから。
ユーザの認証はNTLM認証で、Administratorユーザなら「<コンピュータ名>Administrator」でユーザを探す。この「 コンピュータ名」が”ローカル”ではない外部をさしているのだ。
このようになる場合は、hostsファイル (C:WINDOWSsystem32driversetcにある)に、以下のようなエントリーがある可能性が高い。
?127.0.0.1 ?? localhost
:(省略)
192.168.1.1? <コンピュータ名>
もうお気づきだと思うが、<コンピュータ名>が127.0.0.1でないので外部からの接続扱いになっていて、当然ローカルのユーザを探しにいかないので認証エラーになる。
▼ 解決方法
<コンピュータ名>は127.0.0.1のエントリーに登録する。
hostsファイル
?127.0.0.1 ?? localhost <コンピュータ名>