Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да реша ORA-28000 акаунтът е заключен

Често се натъкваме на грешка ORA-28000 акаунтът е заключен в ежедневните дейности. Това може да се случи както с разработчиците, така и с DBA.

Причини

Това може да се случи поради множество причини

а. Oracle DBA нарочно е заключил акаунта

alter user <username> account lock;
select status from dba_users where username='&1';

б. Много пъти е правена грешна парола, което води до заключване. Броят на 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо CONNECT BY LEVEL в таблица връща допълнителни редове?

  2. Ред на изпълнение на условията в SQL клауза „къде“.

  3. OracleDataSource срещу Oracle UCP PoolDataSource

  4. Как да избягате от запетая и двоен кавичка едновременно за CSV файл?

  5. Oracle 11g - Как да оптимизираме избора на бавно паралелно вмъкване?