Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Cara mengatasi ORA-28000 akun terkunci

Kami sering menemukan kesalahan ORA-28000 akun terkunci dalam aktivitas sehari-hari. Hal ini dapat terjadi pada developer dan DBA.

Alasan

Hal ini dapat terjadi karena berbagai alasan

sebuah. Oracle DBA dengan sengaja mengunci akun

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

b. Kata sandi yang salah telah dicoba berkali-kali yang mengakibatkan penguncian. Jumlah FAILED_LOGIN_ATTEMPTS  dapat ditemukan menggunakan kueri di bawah

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

Kami juga dapat menemukan di mana semua upaya login yang gagal terjadi dengan mengaktifkan audit

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

Solusi

Jika ini tidak terjadi dengan sengaja , kita dapat menyelesaikan masalah menggunakan pendekatan di bawah ini sesuai

(1) Buka kunci akun menggunakan perintah di bawah ini

alter user <username> account unlock;

Sebelum menjalankan kueri di atas, pastikan alasan kesalahan telah diselesaikan. Jika tidak, kesalahan akan terjadi lagi.

(2) Jika alasan kesalahan tidak diketahui dan Hingga masalah teratasi, kami dapat membuat profil lain dengan FAILED_LOGIN_ATTEMPTS

yang tidak terbatas
SQL> CREATE PROFILE TECH_TMP LIMIT
FAILED_LOGIN_ATTEMPTS UNLIMITED
;

Dan Tetapkan ke pengguna yang mengalami masalah

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

Setelah penyebabnya diketahui dan kami mengetahui sumber dari mana kata sandi yang tidak valid berasal, kami dapat mengubah profil pengguna ke yang sebelumnya dan menghapus profil yang baru dibuat

alter user scott profile TECH_PW;
drop profile TECH_TMP;

Semoga Anda menyukai posting ini di ORA-28000 akun terkunci dan itu akan membantu dalam aktivitas Anda sehari-hari. Harap berikan umpan balik tentang itu

Artikel Terkait

ORA-01017:nama pengguna/kata sandi tidak valid; logon ditolak
Cara login sebagai pengguna tanpa mengubah kata sandi di database Oracle
Buat Pengguna di Oracle
Cara membuat Pengguna dan Peran di database 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. Mengapa pembaruan massal templat hibernasi ini tidak berfungsi

  2. Ambil baris yang memiliki nilai Max untuk sebuah kolom

  3. Pengguna Umum Dengan hak istimewa SYSBACKUP

  4. Menggunakan Dapper dengan prosedur tersimpan Oracle yang mengembalikan kursor

  5. Apakah ada cara untuk menyiram output dari PL/SQL di Oracle?