sql >> Databáze >  >> RDS >> Oracle

Jak vyřešit ORA-28000 účet je uzamčen

Často se setkáváme s chybou ORA-28000 účet je uzamčen v každodenních činnostech. To se může stát jak u vývojářů, tak u DBA.

Důvody

To se může stát z několika důvodů

A. Oracle DBA úmyslně uzamkl účet

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

b. Mnohokrát bylo zadáno nesprávné heslo, což vedlo k uzamčení. Počet FAILED_LOGIN_ATTEMPTS  lze zjistit pomocí níže uvedeného dotazu

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

Povolením auditování

můžeme také zjistit, kde se všechny neúspěšné pokusy o přihlášení odehrály
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

Řešení

V případě, že se tak nestalo záměrně, můžeme problém vyřešit pomocí níže uvedeného přístupu

(1) Odemkněte účet pomocí níže uvedeného příkazu

alter user <username> account unlock;

Před provedením výše uvedeného dotazu se ujistěte, že je odstraněn důvod chyby. V opačném případě dojde k chybě znovu.

(2) Pokud je důvod chyby neznámý a dokud nebude problém vyřešen, můžeme vytvořit další profil s neomezeným počtem FAILED_LOGIN_ATTEMPTS

SQL> CREATE PROFILE TECH_TMP LIMIT
FAILED_LOGIN_ATTEMPTS UNLIMITED
;

A přiřaďte jej uživateli, který má problém

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

Jakmile je zjištěna příčina a známe zdroj, odkud pochází neplatné heslo, můžeme změnit uživatelský profil na předchozí a nově vytvořený profil zahodit

alter user scott profile TECH_PW;
drop profile TECH_TMP;

Doufám, že se vám tento příspěvek na ORA-28000 líbí, účet je uzamčen a pomůže vám ve vašich každodenních činnostech. Poskytněte nám prosím zpětnou vazbu

Související články

ORA-01017:neplatné uživatelské jméno/heslo; přihlášení odepřeno
Jak se přihlásit jako uživatel bez změny hesla v databázi Oracle
Vytvořit uživatele v Oracle
Jak vytvořit uživatele a role v databázi Oracle 12c
ORA-00904
ORA-28002
https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4003.htm


  1. SQL dotaz pro rozdělení dat sloupců do řádků

  2. Jak obnovit databázi MySQL ze souborů .myd, .myi, .frm

  3. Nejčastější problémy s MHA a jak je vyřešit

  4. Mysql počítá instance podřetězce a poté seřaďte podle