JavaアプリケーションからリモートのIBMDB29.7データベースに接続しようとしています。接続は次のエラーで失敗します。
SQL30082Nセキュリティー処理が理由"24"( "ユーザー名および/またはパスワードが無効です")で失敗しました。SQLSTATE = 08001
これは、ユーザー名とパスワードに問題があることを示しています。ただし、正しいユーザー名と正しいパスワードを使用したことは間違いありません。
この問題を解決するために、私はすでに次のことを試しました。
- 私はHP-UXを使用しており、db2のユーザーアカウントは「db2inst1」と呼ばれます。これは、私が見つけた命名規則に従って機能するはずです。
- まったく同じユーザー名とパスワードでマシンにSSH接続すると正常に機能します。
- ユーザーdb2inst1としてSSH経由でログインすると、「db2connecttoSAMPLE」が機能します。ただし、「db2 connect to SAMPLE user db2inst1」は、正しいパスワードを使用していても、上記のエラーを生成します。
- グーグルを通して、dbmcfgの「データベースマネージャー認証」をSERVERに設定する必要があることがわかりました。ずっとSERVERに設定されていました。
- 「db2getdbmcfg | grep -i auth」は、次の結果を生成します。
GSS Plugin for Local Authorization (LOCAL_GSSPLUGIN) = Server Connection Authentication (SRVCON_AUTH) = SERVER Database manager authentication (AUTHENTICATION) = SERVER Alternate authentication (ALTERNATE_AUTH_ENC) = NOT_SPECIFIED Cataloging allowed without authority (CATALOG_NOAUTH) = NO Trusted client authentication (TRUST_CLNTAUTH) = CLIENT Bypass federated authentication (FED_NOAUTH) = NO
編集:問題はまだ解決されていませんが、私はそれについてもっと知りました:
Db2diagには、次の警告が含まれています。
2012-07-20-06.18.24.445983-360 I122110A443レベル:警告PID
:24470 TID:223 PROC:db2sysc 0インスタンス:db2inst1ノード:000 DB:サンプルAPPHDL:0-25775 EDUID:223 EDUNAME:db2agent(サンプル)0機能:DB2 UDB、bsu security、sqlexLogPluginMessage、probe:20 DATA 1:サイズの文字列、67バイトユーザーdb2inst1のパスワード検証がrc=-2146500507で失敗しました2012-07-20-06.18.24.446251-360 I122554A436レベル:警告PID
:24470 TID:223 PROC:db2sysc 0インスタンス:db2inst1ノード:000 DB:サンプルAPPHDL:0-25775 EDUID:223 EDUNAME:db2agent(サンプル)0機能:DB2 UDB、bsuセキュリティ、sqlexSlsSystemAuthenticate、プローブ:150メッセージ:アプリケーションID:データ#1:サイズの文字列、26バイトC0A8150A.D350.120720121824
また、SYSPROCへの一部のクエリでもエラーが生成されます。たとえば、これは次のとおりです。
db2 "values SYSPROC.AUTH_GET_INSTANCE_AUTHID()"
私は今、それがアクセス権に関係していると推測しています。クエリを使用していくつかの権利を確認できます
"SELECT * FROM TABLE(SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID('db2inst1'、'U'))AS T ORDER BY AUTHORITY"
この結果、CONNECTはD_USERの場合は「N」になりますが、D_GROUPの場合は「Y」になります。
db2inst1が接続できるように、D_USERは「Y」になっているはずです。したがって、私はを使用してこれに対する権利を付与しようとしました
db2「データベースのユーザーdb2inst1への接続を許可する」</p>
しかし、運が悪ければ、D_USERはまだ「N」のままであり、エラーは引き続き発生します。
私にできることは他にありますか?
この問題について助けていただければ幸いです。