ORA-28000アカウントがロックされていますというエラーが頻繁に発生します 日々の活動で。これは、開発者とDBAの両方で発生する可能性があります。
理由
これは複数の理由で発生する可能性があります
a。 OracleDBAは意図的にアカウントをロックしました
alter user <username> account lock; select status from dba_users where username='&1';
b。間違ったパスワードが何度も試行され、ロックが発生しました。 FAILED_LOGIN_ATTEMPTSの数は、以下のクエリを使用して見つけることができます
select username , profile from dba_users where username='&1'; ----- ------ SCOTT TECH_PW select * from dba_profiles where profile='&1' and resource_name='FAILED_LOGIN_ATTEMPTS'; SQL> select RESOURCE_NAME,resource_type,LIMIT from dba_profiles where PROFILE='TECH_PW' ; RESOURCE_NAME RESOURCE LIMIT ----------- ------- ----- COMPOSITE_LIMIT KERNEL DEFAULT SESSIONS_PER_USER KERNEL DEFAULT CPU_PER_SESSION KERNEL DEFAULT CPU_PER_CALL KERNEL DEFAULT LOGICAL_READS_PER_SESSION KERNEL DEFAULT LOGICAL_READS_PER_CALL KERNEL DEFAULT IDLE_TIME KERNEL DEFAULT CONNECT_TIME KERNEL DEFAULT PRIVATE_SGA KERNEL DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 5 PASSWORD_LIFE_TIME PASSWORD 90 PASSWORD_REUSE_TIME PASSWORD UNLIMITED PASSWORD_REUSE_MAX PASSWORD 10 PASSWORD_VERIFY_FUNCTION PASSWORD DEFAULT PASSWORD_LOCK_TIME PASSWORD DEFAULT PASSWORD_GRACE_TIME PASSWORD DEFAULT Default values can be found by querying the default profile SQL> select RESOURCE_NAME,resource_type,LIMIT from dba_profiles where PROFILE='DEFAULT'; RESOURCE_NAME RESOURCE LIMIT ------------- ------- ------ COMPOSITE_LIMIT KERNEL UNLIMITED SESSIONS_PER_USER KERNEL UNLIMITED CPU_PER_SESSION KERNEL UNLIMITED CPU_PER_CALL KERNEL UNLIMITED LOGICAL_READS_PER_SESSION KERNEL UNLIMITED LOGICAL_READS_PER_CALL KERNEL UNLIMITED IDLE_TIME KERNEL UNLIMITED CONNECT_TIME KERNEL UNLIMITED PRIVATE_SGA KERNEL UNLIMITED FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED PASSWORD_LIFE_TIME PASSWORD UNLIMITED PASSWORD_REUSE_TIME PASSWORD UNLIMITED PASSWORD_REUSE_MAX PASSWORD UNLIMITED PASSWORD_VERIFY_FUNCTION PASSWORD NULL PASSWORD_LOCK_TIME PASSWORD UNLIMITED PASSWORD_GRACE_TIME PASSWORD UNLIMITED
監査を有効にすることで、ログインの失敗がすべて発生した場所を見つけることもできます
audit session whenever not successful; select OS_USERNAME,USERNAME,USERHOST,to_char(timestamp,'MM-DD-YYYY HH24:MI:SS'), returncode from dba_audit_trail where returncode > 0を選択します。
解決策
これが意図的に行われていない場合は、以下のアプローチを使用して問題を解決できます
(1)以下のコマンドを使用してアカウントのロックを解除します
alter user <username> account unlock;
上記のクエリを実行する前に、エラーの理由が整理されていることを確認してください。そうしないと、エラーが発生します。
(2)エラーの理由が不明で、問題が解決するまで、無制限のFAILED_LOGIN_ATTEMPTSを使用して別のプロファイルを作成できます
SQL> CREATE PROFILE TECH_TMP LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED ;
そして、問題が発生しているユーザーに割り当てます
alter user scott profile TECH_TMP; alter user scott account unlock;
原因が特定され、無効なパスワードの出所がわかったら、ユーザープロファイルを以前のプロファイルに変更し、新しく作成されたプロファイルを削除できます
alter user scott profile TECH_PW; drop profile TECH_TMP;
ORA-28000のこの投稿が気に入っていただければ幸いです。アカウントはロックされており、日々の活動に役立ちます。フィードバックをお寄せください
関連記事
ORA-01017:ユーザー名/パスワードが無効です。ログオンが拒否されました
Oracleデータベースでパスワードを変更せずにユーザーとしてログインする方法
Oracleでユーザーを作成する
Oracleデータベース12cでユーザーとロールを作成する方法
ORA-00904
ORA-28002
https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4003.htm