sql >> Database teknologi >  >> RDS >> Oracle

Sådan løses ORA-28000 kontoen er låst

Vi støder ofte på fejlen ORA-28000 kontoen er låst i daglige aktiviteter. Dette kan ske med både udviklere og DBA.

Årsager

Dette kan ske på grund af flere årsager

en. Oracle DBA har med vilje låst kontoen

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

b. Forkert adgangskode er blevet forsøgt mange gange, hvilket har resulteret i låsning. Antallet af FAILED_LOGIN_ATTEMPTS kan findes ved hjælp af nedenstående forespørgsel

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

Vi kan også finde, hvor alle mislykkede loginforsøg skete ved at aktivere revision

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

Løsning

Hvis dette ikke er sket med vilje, kan vi løse problemet ved at bruge nedenstående fremgangsmåde i overensstemmelse hermed

(1) Lås kontoen op ved at bruge nedenstående kommando

alter user <username> account unlock;

Før du udfører ovenstående forespørgsel, skal du sørge for, at årsagen til fejlen er sorteret fra. Ellers vil fejlen opstå igen.

(2) Hvis årsagen til fejlen er ukendt, og indtil problemet er løst, kan vi oprette en anden profil med ubegrænset FAILED_LOGIN_ATTEMPTS

SQL> CREATE PROFILE TECH_TMP LIMIT
FAILED_LOGIN_ATTEMPTS UNLIMITED
;

Og tildel den til den bruger, der oplever problemet

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

Når årsagen er etableret, og vi kender kilden, hvorfra ugyldig adgangskode kommer, kan vi ændre brugerprofilen til den forrige og droppede den nyoprettede profil

alter user scott profile TECH_PW;
drop profile TECH_TMP;

Håber du kan lide dette indlæg på ORA-28000, kontoen er låst, og det vil hjælpe i dine daglige aktiviteter. Giv venligst feedback på det

Relaterede artikler

ORA-01017:ugyldigt brugernavn/adgangskode; logon nægtet
Sådan logger du på som bruger uden at ændre adgangskoden i Oracle-databasen
Opret bruger i Oracle
Sådan opretter du brugere og roller i Oracle-databasen 12c
ORA-00904
ORA-28002
https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4003.htm


  1. Postgres - FATAL:databasefiler er inkompatible med serveren

  2. Den officielle Microsoft Access Tech Blog er nu online!

  3. Hvordan holder man en enkelt SQL Server-forbindelsesinstans åben for flere anmodninger i C#?

  4. Sådan rettes "ALTER TABLE SWITCH statement failed" Msg 4982 (SQL Server)