Localhost\sql2008サーバーにログインアカウントを作成しました(例:User123)
データベースにマッピング(デフォルト)
SQL Serverの認証モードが両方(WindowsとSQL)に設定されている
しかしSQL Serverへのログインは次のメッセージで失敗します(User123の場合)
注:UserName/Passwordが正しく入力されていることを複数回確認しています
エラーの詳細:
ユーザー 'User123'(Net.SqlClientデータプロバイダ)のログインに失敗しました
サーバー名:localhost\sql2008エラー番号:18456重大度:14状態:1行番号:65536
これで何か助けてください。
デフォルトでは、ログインに失敗したというエラーメッセージは何もありませんが、ログイン認証情報が一致しないためにクライアントユーザー接続がサーバーによって拒否されました。最初に確認する作業は、そのユーザーがそのSQL Serverインスタンスおよび関連データベースに対しても適切な特権を持っているかどうかを確認することです。必要な権限が設定されていない場合は、そのユーザーログインに関連する権限を付与することでその問題を解決する必要があります。
そのユーザーがデータベースとサーバーに対する適切な権限を持っていても、そのログインに対して資格情報の問題が発生した場合、SQL Serverへの認証の許可が拒否され、クライアントに次のエラーメッセージが表示されます。
Msg 18456, Level 14, State 1, Server <ServerName>, Line 1
Login failed for user '<Name>'
さて、エラーメッセージを見て、これはLevel&stateを理解するのに説明的ではないように感じます。デフォルトでは、ログイン認証時の問題の性質にかかわらず、オペレーティングシステムエラーに「状態」が1と表示されます。そのため、さらに調査するには、関連するSQL Serverインスタンスのエラーログを調べて、このエラーの重大度と状態に関する詳細情報を入手する必要があります。ログ内の対応するエントリは、次のようになります。
2007-05-17 00:12:00.34 Logon Error: 18456, Severity: 14, State: 8.
or
2007-05-17 00:12:00.34 Logon Login failed for user '<user name>'.
上記で定義されているように、エラーの重大度と状態の列は、問題の原因を正確に反映するために重要です。上記の状態のエラー番号8は、パスワードの不一致による認証の失敗を示します。 Books Onlineが参照します。既定で、19未満の重要度のユーザー定義メッセージは、発生してもMicrosoft Windowsアプリケーションログに送信されません。したがって、重大度が19未満のユーザー定義メッセージは、SQL Serverエージェントの警告をトリガしません。
SQL Server Protocols(Dev.team)のプログラムマネージャであるSung Leeが、エラー状態の説明に関する詳細を概説しました。一般的なエラー状態とその説明を次の表に示します。
ERROR STATE ERROR DESCRIPTION
------------------------------------------------------------------------------
2 and 5 Invalid userid
6 Attempt to use a Windows login name with SQL Authentication
7 Login disabled and password mismatch
8 Password mismatch
9 Invalid password
11 and 12 Valid login but server access failure
13 SQL Server service paused
18 Change password required
Well I'm not finished yet, what would you do in case of error:
2007-05-17 00:12:00.34 Logon Login failed for user '<user name>'.
そのSQL Serverインスタンスのエラーログから、重大度や状態レベルが定義されていないことがわかります。そのため、次のトラブルシューティングオプションは、イベントビューアのセキュリティログを見ることです。
アイデア、興味深いイベントをイベントログで調べてください。
SQL Server認証を有効にする必要があります。
私はこれと同じ問題を抱えていましたが、私の考えでは、サーバー認証を "SQL ServerとWindows認証モード"に設定していませんでした。
これにアクセスすることができます
これにアクセスすることができます
Right click on instance (IE SQLServer2008)
Select "Properties"
Select "Security" option
Change "Server authentication" to "SQL Server and Windows Authentication mode"
Restart the SQLServer service
Right click on instance
Click "Restart"
これを読んでいる他の人のためだけに:これは私にとっても2012 SQL Serverでうまくいきました。ありがとう
この問題を解決するには、使用しているSQL Serverに対してSQLサーバー認証が有効になっていることを確認します。