1)使用者被鎖定,但一直無法解鎖
說明:在個别現場發現一個使用者經常被鎖住,剛使用[alter user <user_name> account unlock; commit;]然後仍然無法登入,還是一直報錯:使用者被鎖定。 目前使用者: 如何 檢視目前 連接配接的 使用者 how user;
select sys_context( 'userenv ', 'session_user ') from dual;
select user from dual;
檢視所有登入的使用者
select username from v$session;
SQL> select count(*) from v$session;
COUNT(*) ---------- 26 SQL> select machine,terminal from v$session;
SQL> select * from user_role_privs;
USERNAME GRANTED_ROLE ADM DEF OS_ ------------------------------ ------------------------------ --- --- --- SYSTEM AQ_ADMINISTRATOR_ROLE YES YES NO SYSTEM DBA YES YES NO SYSTEM MGMT_USER NO YES NO
解決辦法:查DBA_USERS表,可以看到使用者的狀态。是否被鎖住(變成LOCKED(TIMED)狀态了說明使用者被鎖定)。 SQL> select USERNAME , ACCOUNT_STATUS from dba_users;
USERNAME ACCOUNT_STATUS ------------------------------ -------------------------------- MGMT_VIEW OPEN SYS OPEN SYSTEM OPEN DBSNMP OPEN SYSMAN OPEN SCOTT OPEN OUTLN EXPIRED & LOCKED
select * from USER_HISTORY$ –檢視使用者密碼是否過期
select * from dba_profiles –檢視使用者使用的profile設定
解決:
sqlplus /nolog
conn /as sysdba
alter user <user_name> account unlock; –解鎖
alter user <user_name> password expire; –密碼過期
alter user <user_name> identified by <password>; –重設密碼
或者 alter profile default limit failed_login_Attempts unlimited;
然後登入即可
【注】若要檢視任一賬戶的密碼限期,可查詢DBA_USERS資料字典視圖的Expire_Date列。若使用者自己想檢視,可查詢USER_USERS資料字典視圖的Expiry_Date列(通過SQL*Plus或一個基于客戶機的查詢工具)。