sql >> Database >  >> RDS >> Oracle

Hoe ORA-28000 op te lossen, het account is vergrendeld

We komen vaak de fout tegen ORA-28000 het account is vergrendeld bij dagelijkse activiteiten. Dit kan gebeuren met zowel ontwikkelaars als DBA.

Redenen

Dit kan verschillende redenen hebben

a. Oracle DBA heeft het account met opzet vergrendeld

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

b. Er is vele malen een verkeerd wachtwoord geprobeerd, wat resulteerde in vergrendeling. Het aantal FAILED_LOGIN_ATTEMPTS  kan worden gevonden met de onderstaande zoekopdracht

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

We kunnen ook achterhalen waar alle mislukte inlogpogingen plaatsvonden door auditing in te schakelen

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

Oplossing

Als dit niet met opzet is gebeurd, kunnen we het probleem oplossen met behulp van de onderstaande aanpak

(1) Ontgrendel het account met het onderstaande commando

alter user <username> account unlock;

Voordat u bovenstaande zoekopdracht uitvoert, moet u ervoor zorgen dat de reden voor de fout is opgelost. Anders zal de fout opnieuw optreden.

(2) Als de reden voor de fout onbekend is en totdat het probleem is opgelost, kunnen we een ander profiel maken met onbeperkt FAILED_LOGIN_ATTEMPTS

SQL> CREATE PROFILE TECH_TMP LIMIT
FAILED_LOGIN_ATTEMPTS UNLIMITED
;

En wijs het toe aan de gebruiker die het probleem ondervindt

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

Zodra de oorzaak is vastgesteld en we de bron kennen waar het ongeldige wachtwoord vandaan komt, kunnen we het gebruikersprofiel wijzigen in het vorige en het nieuw gemaakte profiel laten vallen

alter user scott profile TECH_PW;
drop profile TECH_TMP;

Ik hoop dat je dit bericht op ORA-28000 leuk vindt, het account is vergrendeld en het zal je helpen bij je dagelijkse activiteiten. Geef er alstublieft feedback over

Verwante artikelen

ORA-01017:ongeldige gebruikersnaam/wachtwoord; aanmelding geweigerd
Aanmelden als gebruiker zonder het wachtwoord in Oracle-database te wijzigen
Gebruiker maken in Oracle
Gebruikers en rollen maken in Oracle-database 12c
ORA-00904
ORA-28002
https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4003.htm


  1. PHP - CSV-bestand importeren in mysql-database met behulp van LOAD DATA INFILE

  2. Welk gegevenstype moet worden gebruikt voor het gehashte wachtwoordveld en welke lengte?

  3. MyBatis RowBounds beperkt de resultaten van zoekopdrachten niet

  4. Versleutelde gegevens opslaan in Postgres