不修改用戶密碼的前提下,解鎖用戶
不修改用戶密碼的前提下,解鎖用戶
1.0需求:某用戶通知,無法登陸,用戶被鎖定,但是密碼不知道 或者 不告訴你
1.1:用戶被鎖定:幾種可能性
A用戶使用默認Pfile概要文件,其中參數:
-- PASSWORD_LIFE_TIME 180 密碼有效保留時間
B用戶使用默認Pfile概要文件,其中參數:
-- FAILED_LOGIN_ATTEMPTS 10 登錄失敗後,允許嘗試登錄的次數
-- PASSWORD_LOCK_TIME 1 登錄失敗後,超出限制,賬戶鎖定天數
C 用戶使用的自定義設置:本次實驗不做考慮
1.2故障模擬
#創建測試用戶
SQL> create user yang identified by asfqr1rfa10;
#鎖定用戶
SQL> alter user yang account lock;
#PL/SQL登陸報錯
SQL*Plus登陸報錯
SQL> conn yang/asfqr1rfa10;
ERROR:
ORA-28000:
Warning: You are no longer connected to ORACLE.
#查詢報錯解釋說明
SQL> !oerr ora 28000
28000, 00000, "the account is locked"
// *Cause: The user has entered wrong password consequently for maximum
// number of times specified by the user‘s profile parameter
// FAILED_LOGIN_ATTEMPTS, or the DBA has locked the account
// *Action: Wait for PASSWORD_LOCK_TIME or contact DBA
#輸入錯誤的密碼,超出允許輸入錯誤次數的範圍,用戶被鎖定
#DBA鎖定 請聯系DBA
1.3解決思路
1.3.1查詢信息
# SQL> alter session set nls_date_format=‘yyyy-mm-dd hh24:mi:ss‘;
SQL> select USERNAME,PASSWORD,ACCOUNT_STATUS,LOCK_DATE,PROFILE from dba_users where username =‘YANG‘;
YANG 用戶
LOCKED 鎖定
2018-01-14 01:25:21 鎖定時間
DEFAULT 概要文件默認
1.3.2 查詢用戶密碼 hash後的值
SQL>select name,password from user$ where name=‘YANG‘
NAME PASSWORD
---------- ------------------------------------------------------------
YANG BF382C1C900CB086
1.3.2使用密碼hash值解鎖用戶,密碼不修改
SQL> alter user yang identified by values ‘BF382C1C900CB086‘ account unlock;
1.3.3驗證
SQL> conn yang/asfqr1rfa10
Connected.
1.3.4設置密碼永不過期
默認概要文件180天過期,可以修改概要文件參數
#查詢用戶賬戶密碼到期時間
SQL> alter session set nls_date_format=‘yyyy-mm-dd hh24:mi:ss‘;
SQL> select username,expiry_date from dba_users where username in(‘HR‘,‘YANG‘);
USERNAME EXPIRY_DATE
------------------------------------------------------------ -------------------
YANG 2018-07-13 01:49:18
HR 2018-07-12 06:09:24
SQL> select sysdate from dual;
2018-01-14 01:55:04
#修改無限制OK
alter profile default limit password_life_time unlimited;
#查詢驗證
SQL> select username,expiry_date from dba_users where username in(‘HR‘,‘YANG‘);
USERNAME EXPIRY_DATE
---------- -------------------
YANG
HR
#擴展:可以修改上述:密碼登錄錯誤後,允許嘗試連接次數,修改無限制:慎重
不修改用戶密碼的前提下,解鎖用戶