SQL Serverにログインできない+ SQL Server認証+エラー:18456


121

localhost \ sql2008サーバーにログインアカウントを作成しました(例:User123)

データベースにマッピング(デフォルト)

SQL Serverの認証モードが両方に設定されている(WindowsおよびSQL)

しかし、SQL Serverへのログインが次のメッセージで失敗します(User123の場合)

注:ユーザー名/パスワードが正しく入力されていることを複数回確認しました

エラーの詳細:

ユーザー 'User123'(Net.SqlClientデータプロバイダー)のログインに失敗しました

サーバー名:localhost \ sql2008エラー番号:18456重要度:14状態:1行番号:65536

これについて何か助けてください。


1
ユーザーのSqlServer管理コンソールを介してsqlとwindowsの両方の認証アクセスをテストし、上記のアカウントでアクセスできるかどうかを確認します。どのデータプロバイダーと接続文字列を使用していますか?
ジョーピッツ

1
SSMSにログインしようとすると、上記のエラーがスローされます。
Sreedhar、2010年

1
管理者アカウントでログインできますか?
ジョーピッツ

管理者としてログインし、イベントログを確認してください。エラーの理由がそこにリストされているはずです。管理フォルダの下を見る
Joe Pitz

回答:


49

デフォルトでは、ログイン失敗のエラーメッセージは、ログイン資格情報の不一致により、サーバーによってクライアントユーザー接続が拒否されただけです。チェックする可能性がある最初のタスクは、そのユーザーがそのSQL Serverインスタンスおよび関連するデータベースに対する関連する特権も持っているかどうかを確認することです。明らかに、必要な権限が設定されていない場合は、そのユーザーログインに関連する権限を付与することにより、この問題を修正する必要があります。

そのユーザーがデータベースとサーバーに関連する許可を持っている場合、サーバーがそのログインの資格情報の問題に遭遇すると、SQL Serverに認証を戻すことができなくなりますが、クライアントは次のエラーメッセージを受け取ります。

Msg 18456, Level 14, State 1, Server <ServerName>, Line 1
Login failed for user '<Name>'

エラーメッセージを見ると、これはレベルと状態を理解するのに説明的ではないと思われます。デフォルトでは、ログインの認証における問題の性質に関係なく、オペレーティングシステムエラーは「状態」を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インスタンスのエラーログから、重大度または状態レベルが定義されていないことがわかります。したがって、次のトラブルシューティングオプションは、イベントビューアのセキュリティログを確認することです[スクリーンショットが見つからないため、編集してください。

アイデア、興味深いイベントのイベントログを見てください]。


1
ありがとう、それがどうなるか見てみてください
Sreedhar

1
デッドリンクは改訂をご検討ください
Chris Hayes、

10
これではなく、この下の優れた答えを選択する必要があります。
void.pointer

4
以下の投稿を読んでください。
Levi Fuller

6
@ void.pointer OPは、「SQL Serverの認証モードが(WindowsとSQL)の両方に設定されている」ことをすでに確立しています。したがって、以下の投稿はこの質問とは無関係です。
Manachi、2015年

336

SQL Server認証を有効にする必要があります。

  1. オブジェクトエクスプローラーでサーバーを右クリックし、[プロパティ]をクリックします。

DBMSプロパティダイアログ

  1. 「サーバーのプロパティ」ウィンドウで、左側のページのリストにある「セキュリティ」をクリックします。[サーバー認証]で[SQLサーバーとWindows認証モード]ラジオオプションを選択します。

SQL Server認証ダイアログ

  1. SQLEXPRESSサービスを再起動します。

29
百万回ありがとうございます。主に上記の「再起動」という言葉のために!
マグナススミス

4
私はこれが古いことを知っていますが、それは私の尻を完全に救いました。Prateekに感謝します。感謝します。再起動する必要があります!
Levi Fuller

3
OPで "SQL Serverの認証モードが両方(WindowsとSQL)に設定されている"と明示的に示されている場合、これが機能するのはなぜですか?
Tim Schmelter 2014

4
この回答は冗長であり、質問には役立ちません。OPは、「SQL Serverの認証モードが両方(WindowsとSQL)に設定されている」ことをすでに確立しています。
Manachi、2015年

1
これはすごかった.. !! ありがとうPrateekSaluja
アミンは

44

私もこれと同じ問題を抱えていましたが、サーバー認証を「SQL ServerとWindows認証モード」に設定していなかったためです(誰かが設定していました)。

あなたはこれにアクセスできます

  • インスタンスを右クリック(IE SQLServer2008)
  • 「プロパティ」を選択します
  • 「セキュリティ」オプションを選択します
  • 「サーバー認証」を「SQLサーバーとWindows認証モード」に変更します。
  • SQLServerサービスを再起動します。
    • インスタンスを右クリック
    • 「再起動」をクリック

6
サーバー全体を再起動する必要があることがわからなかったので、2時間ほど費やしました。これは、そのようなことのために再起動が必要であるというのは正気ではありません。マイクロソフトは、彼らが吐き出すクラップウェアに制限を設けていません。
登録ユーザー

1
これは、SQLサーバーがインストールされているAmazon EC2インスタンスに接続できない理由に対する重要な回答でもあります。
テオマンシパヒ2013

19

あなたはこれにアクセスできます

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でも機能しました。ありがとう


1
これは完璧で、要点は正しかったです。受け入れられた答えは良い情報でいっぱいですが、これは私にとってうまくいったものです。
Tony

4
彼は「SQL Serverの認証モードが両方(WindowsとSQL)に設定されている」と述べたため、これはOPでは機能しません。
Tim Schmelter 2014


1

「SQL ServerおよびWindows認証モード」を有効にした後、以下に移動します。

  1. コンピューターの管理(スタートメニュー)
  2. サービスとアプリケーション
  3. SQL Server構成マネージャー
  4. SQL Serverネットワーク構成
  5. MSSQLSERVERのプロトコル
  6. TCP / IPを右クリックして有効にします。

最後にSQL Serverを再起動します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.