Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

MS SQL 2005 Express で 'エラー: 18456、重大度: 14、状態: 16'が発生してユーザログインが失敗してしまう

3,179 views
Skip to first unread message

ハンセン

unread,
Mar 19, 2008, 6:32:55 AM3/19/08
to
お世話になっております。どなたか、該当の事象に対して、御経験もしくは何かお分かりになりましたら回避策等の御教授を御願い致します。

[環境]
OS:Windows2003 SP2
SQL Server 2005 Enterprise Edition SP2

[アプリケーション・データベース環境]
1.JDBCにてSQL Server接続を行わせるアプリケーションがWindowサービスで起動します。
2.DBにはSQL認証を利用して接続できるようにしており、DBにアクセスする
  ユーザには、下記のようなロール権限をマップさせたユーザが定義されています

  - db_buckupoperator
- db_datareader
- db_datawriter
- db_ddladmin

[問題事象]
1.上記設定にてアプリケーションはMS SQL へ正常に接続できる状態になっております。
2.次にアプリケーションのサービス再起動を実施します。
すると以下のメッセージがSQL ServerのERROR.LOGに出力され、

--ERRORメッセージ--
エラー: 18456、重大度: 14、状態: 16。
Login failed for user 'XXXXXX(ユーザ名)'. [クライアント: <ホストIPアドレス>]
--

またWindowsホストのアプリケーション・イベントログにも以下のメッセージが
出力され、

--
MSSQLSERVER 失敗の監査 (4) 18456 N/A <ホスト名> ユーザー 'XXXXXX' はログインできませんでした。 [クラ
イアント: <ホストIPアドレス>]
--

結果的にアプリケーションからの接続が全くできない事象が発生します。

3.ところが、Management Studioにて上記設定済みのユーザ定義を一旦削除し、再定義を行なうとまたアプリケーションからの接続が正常
に行われるようになります。

※同様な事象が以下のURLにても紹介されています。
http://slashdot.jp/~noritama2/journal/392321

本事象は、SQL Server 2005 Standard Edition SP2環境では再現しておりません。
アプリケーションの再起動により、この事象が発生してしまい、ユーザの再定義を
行なわない限り、接続が行えなくなるという不可解な事象となっており、困っております。

どうぞ宜しく御願いします。

ハンセン

unread,
Mar 25, 2008, 7:22:49 PM3/25/08
to
本件、SQL Serverのログ等を調査したところ、自己解決できました。 その後、ユーザの再定義をしたものの接続ができなくなる傾向が伺えたこと
から、接続するログイン(ユーザ)にロールが割り当てられていないという問題ではありませんでした。どうもアプリの再起動(再接続)するタイミングにて
正常に行なわれたり、しなかったりという傾向から、TCP/IP接続の状態の問題かと思いログの調査を進め、以下の問題であったことが分かりました。

[問題の原因]
・SQL Serverが複数のネットワークインターフェイスカードを搭載し、それぞれのNIC上にて異なるIPアドレスがアクティブになっている。
・SQL Serverが複数のIPアドレスにて、TCP/IP接続をリスンするように設定されている。

[回避方法]
SQL Serverの構成マネージャより、以下の設定を行なうことで、接続に使用するIPアドレス上のみでTCP/IP接続をリスンできるようになり
ます。

1.TCP/IPプロパティ設定の、プロトコルタブにて[すべて受信待ち]を「いいえ」に指定。
2.IPアドレスタブにて、アプリケーションからの接続に使用するIPアドレスの[有効]を「はい」に指定。
 (その他のIPアドレスは[有効]を「いいえ」に設定。)
3.上記設定後、MSSQL Serverサービスを再起動。

ご参考になればと。

0 new messages