Question & Answer
Question
データベース接続時にユーザー、パスワードを指定しなければ正常に接続できます。 ユーザー、パスワードを指定すると、SQL30082N 理由 "19" エラーで接続できません。原因と対応方法を教えてください。
Cause
Db2 AIX 版で、ユーザー名とパスワードを指定した場合のみ SQL30082N 理由コード 19 で接続に失敗することがあります。SQL30082N 理由コード 19 は下記のエラー内容を意味します。
セキュリティー処理は、理由 reason-code (reason-string) により失敗しました。
理由コード
19 (USERID DISABLED または RESTRICTED)
ユーザー ID が無効になっているか、あるいは今回のオペレーティング環境にはアクセスできないよう使用制限されています。
SQL30082N
オペレーティング・システムの設定でユーザーのログイン制限が設定されている場合に理由コード 19 が返される可能性があります。
AIX では /etc/security/user ファイルで当該ユーザーが login = false に設定されている場合、このエラーが発生します。
セキュリティー処理は、理由 reason-code (reason-string) により失敗しました。
理由コード
19 (USERID DISABLED または RESTRICTED)
ユーザー ID が無効になっているか、あるいは今回のオペレーティング環境にはアクセスできないよう使用制限されています。
SQL30082N
オペレーティング・システムの設定でユーザーのログイン制限が設定されている場合に理由コード 19 が返される可能性があります。
AIX では /etc/security/user ファイルで当該ユーザーが login = false に設定されている場合、このエラーが発生します。
Answer
Db2 AIX 版の場合、DB2LOGINRESTRICTIONS レジストリー変数の設定により、AIX の loginrestrictions() API を使用できます。
この API を呼び出すことにより、Db2 データベース・セキュリティーは、オペレーティング・システムによって指定されたログイン制限を適用できます。
システム環境変数 DB2LOGINRESTRICTIONS
DB2LOGINRESTRICTIONS = LOCAL、または変数を設定しない場合は、ローカル・ログイン制限が、データベース接続時の通常の振る舞いです。
ローカル接続の場合、AIX 側の login ユーザー属性を確認します。 login = false に設定されているとローカル・データベース接続が失敗します。
リモート・データベース接続の場合、AIX 側の rlogin ユーザー属性の設定を参照しないため、接続は成功します。
ただし、DB2LOGINRESTRICTIONS=REMOTE に設定すると rlogin ユーザー属性を参照します。
DB2LOGINRESTRICTIONS = NONE に設定すると、AIX の認証設定を参照しないため、オペレーティング・システムのログイン制限にかかわらず接続が可能になります。
DB2LOGINRESTRICTIONS は下記の手順で変更できます。
例) DB2LOGINRESTRICTIONS = NONE に設定する場合
この API を呼び出すことにより、Db2 データベース・セキュリティーは、オペレーティング・システムによって指定されたログイン制限を適用できます。
システム環境変数 DB2LOGINRESTRICTIONS
DB2LOGINRESTRICTIONS = LOCAL、または変数を設定しない場合は、ローカル・ログイン制限が、データベース接続時の通常の振る舞いです。
ローカル接続の場合、AIX 側の login ユーザー属性を確認します。 login = false に設定されているとローカル・データベース接続が失敗します。
リモート・データベース接続の場合、AIX 側の rlogin ユーザー属性の設定を参照しないため、接続は成功します。
ただし、DB2LOGINRESTRICTIONS=REMOTE に設定すると rlogin ユーザー属性を参照します。
DB2LOGINRESTRICTIONS = NONE に設定すると、AIX の認証設定を参照しないため、オペレーティング・システムのログイン制限にかかわらず接続が可能になります。
DB2LOGINRESTRICTIONS は下記の手順で変更できます。
例) DB2LOGINRESTRICTIONS = NONE に設定する場合
- インスタンス・オーナーでデータベース・サーバーにログインします。
- 以下のコマンドを実行します。
db2set DB2LOGINRESTRICTIONS=NONE
db2set -all (環境変数の設定を確認)
db2stop force
db2start
運用上の考慮点
TSA や PowerHA などでフェイルオーバー・クラスターを構成している場合、インスタンス作成や更新後の待機系のインスタンス・プロファイルは待機系の初回起動時に同期されます。
初回起動時にはインスタンス・プロファイルに設定された DB2LOGINRESTRICTIONS は反映されていないため、予期しない SQL30082 rc=19 を受け取ることがあります。2 回目以降の起動ではインスタンス・プロファイルは同期済みのため、問題はありません。
[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PmmAAE","label":"Security and Plug-Ins-\u003EAuthentication"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"}],"Version":"10.1.0;10.5.0;11.1.0;11.5.0;9.7.0"}]
Was this topic helpful?
Document Information
Modified date:
23 August 2023
UID
swg21965474