7

いくつかの情報を取得するために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'のログインに失敗しました。

4

3 に答える 3

9

動作しています!ついに!

まず、Kevinの提案(元の質問の下にあるコメント)を使用して、SQL Serverログを確認しました(Management Studioで、サーバーを展開し、サーバーを展開しManagement、展開しますSQL Server Logs)。これが、問題の診断に役立つ、より長いエラー報告を見つけた方法です。

サーバーがWindows認証以外のものを許可していなかったことが判明したため、UN/PWを手動で入力しようとして失敗しました。

ただし、サーバーがユーザー名ではなくユーザーとしてマシン名を渡すという問題がまだ発生していました。これは、サービスが実行されているユーザーを私の名前に変更するというDuncanの提案で修正されました([サービス]->[プロパティ]->[ログオン]タブを右クリックします)。

皆様のご協力に感謝いたします。

于 2012-06-26T15:22:54.447 に答える
2

サービスが実行されているユーザーアカウントを確認する必要があります。実行中の音によってLocal System、ログインとしてマシン名を渡そうとします。

これを最小特権ドメインユーザーに変更して(またはテストのために、独自のアカウントを使用できます)、そのユーザーにSQLServerへのログインを許可してみてください。それでうまくいくはずです。

于 2012-06-25T22:14:49.060 に答える
0

ログインするためにSQLServerに渡すユーザー名は何ですか?接続文字列によると、ユーザーとしてリテラル「domain\username」を使用しているようです。パスワードは、文字通りの「パスワード」ではなく、正しいパスワードになるように更新する必要があります。

データベースにバックアップされたアプリケーションを作成するC#でプログラミングを開始したときに、このエラーがかなり発生しました。アプリケーションに混合モード環境があり、コンピューターへのログインに使用するものの代わりにSQLServerのユーザー名とパスワードを渡します。これは、データベースがログインできるユーザーと取得するアクセス許可を制御できるようにするために適用したいセキュリティポリシーです。それはあなたがやろうとしていることに合っていますか?もしそうなら、私はより良い支援と、より具体的なコードも提供できるかもしれません。

于 2012-06-25T21:57:35.907 に答える