いくつかの情報を取得するためにSQLサーバーに接続する必要があるWindowsサービスを書いています。ただし、サーバーは私が接続することを許可していません:login failed for user [domain/username]
。奇妙な部分は、SSMSの内部からすべてが完全に正常に機能することです。ログインしてデータベースにクエリを実行すると、すべてが完全に機能します。そのエラーをスローするのは、Windowsサービスを介してのみです。
参考までに、私が使用している接続文字列は次のとおりです。
データソース=sqlserveraddresshere;初期カタログ=databasenamehere;ユーザーID=ドメイン\ユーザー名;パスワード=パスワード`
これが関連しているとは思えませんが、Integrated Securityを使用しようとすると、自分のユーザー名ではなく自分のコンピューター名が取得されます。これは、ウイルス対策および監視ソフトウェアが、Windowsセッションに加えて管理者ユーザーになりすましてその仕事をしているためだと99%確信しています。いずれにせよ、正しいユーザー名とパスワードを入力するだけで、問題なく機能するはずですよね?
同じエラーに関する他のいくつかの質問を調べましたが、それらはすべて無関係でした。私が言えることから、SSMSを介してアクセスできるすべての人は、コードを介してSQLサーバーにアクセスすることもできます。これは私が見つけた最も類似した質問ですが、あまり役に立ちませ んでした。SQLServerに接続できません:「ユーザーのログインに失敗しました」。
また、あなたが尋ねる前に、私はすでにタイプミスをチェックしました。実際、私は他のユーザーのアカウントを使用して、自分の権限で何かファンキーなことが起こっていないことを確認しようとしました。コードを投稿する必要がある場合はお知らせください。ご協力いただきありがとうございます!
アップデート:
サービスのアカウントを変更し、に切り替えましたIntegratedSecurity = true
。少し異なるエラーが発生したため、何かが変更されたようです。
ログインで要求されたデータベース「mydatabase」を開くことができません。ログインに失敗しました。>ユーザー'MYDOMAIN\myUserName'のログインに失敗しました。