Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak rozwiązać ORA-28000 konto jest zablokowane?

Często napotykamy błąd ORA-28000 konto jest zablokowane w codziennych czynnościach. Może się to zdarzyć zarówno z programistami, jak i DBA.

Powody

Może się to zdarzyć z wielu powodów

a. Oracle DBA celowo zablokował konto

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

b. Wielokrotnie próbowano użyć nieprawidłowego hasła, co spowodowało zablokowanie. Liczbę FAILED_LOGIN_ATTEMPTS można znaleźć za pomocą poniższego zapytania

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

Możemy również sprawdzić, gdzie miały miejsce wszystkie nieudane próby logowania, włączając audyt

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

Rozwiązanie

Jeśli nie stało się to celowo, możemy rozwiązać problem, stosując odpowiednio poniższe podejście

(1) Odblokuj konto za pomocą poniższego polecenia

alter user <username> account unlock;

Przed wykonaniem powyższego zapytania upewnij się, że przyczyna błędu została wyjaśniona. W przeciwnym razie błąd się powtórzy.

(2) Jeśli przyczyna błędu jest nieznana i dopóki problem nie zostanie rozwiązany, możemy utworzyć kolejny profil z nieograniczoną liczbą FAILED_LOGIN_ATTEMPTS

SQL> CREATE PROFILE TECH_TMP LIMIT
FAILED_LOGIN_ATTEMPTS UNLIMITED
;

I przypisz go użytkownikowi, który ma problem

alter user scott profile TECH_TMP;
alter user scott account unlock;

Po ustaleniu przyczyny i poznaniu źródła, z którego pochodzi nieprawidłowe hasło, możemy zmienić profil użytkownika na poprzedni i usunąć nowo utworzony profil

alter user scott profile TECH_PW;
drop profile TECH_TMP;

Mam nadzieję, że spodobał Ci się ten post na ORA-28000 konto jest zablokowane i pomoże w codziennych czynnościach. Przekaż opinię na ten temat

Powiązane artykuły

ORA-01017:nieprawidłowa nazwa użytkownika/hasło; odmowa logowania
Jak zalogować się jako użytkownik bez zmiany hasła w bazie danych Oracle
Utwórz użytkownika w Oracle
Jak tworzyć użytkowników i role w bazie danych 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. Dlaczego Oracle SQL nie pozwala nam używać aliasów kolumn w klauzulach GROUP BY?

  2. Jak przekonwertować starszą instrukcję lewego sprzężenia zewnętrznego w Oracle?

  3. Jak przechowywać nieograniczoną liczbę postaci w Oracle 11g?

  4. Jak napisać sparametryzowaną kwerendę wstawiania Oracle?

  5. Programista SQL 4