1. 程式人生 > >Oracle數據庫用戶鎖定原因以及處理方式(ORA-28000)

Oracle數據庫用戶鎖定原因以及處理方式(ORA-28000)

oracle 行修改 padding username 用戶 pla acl listen style

現場在實施過程中,基於安全考慮(用戶名和密碼之前暴露給其他公司了),需要對用戶密碼進行修改。

修改過程很簡單(alter user [username] identified by [password];),但是在修改之後出現該用戶被鎖定的問題。

原因:數據庫參數文件中設置了輸錯密碼的次數,登錄時當輸錯密碼的次數超過所設置的次數時,則鎖住該用戶。默認一般為10次。輸錯密碼鎖住用戶的設計原因:防止惡意的密碼攻擊。

一開始以為是內部人員不知道密碼修改了,多次嘗試登陸因為密碼錯誤導致賬戶鎖定。對賬號進行了手動解鎖(alter user [username] account unlock;),但是後續又出現多次鎖定的情況。

後來發現我們在基於此用戶做過一些ETL以及建立DBLINK等,對這些內容進行同步的密碼更新解決用戶鎖定的問題。

下面是過程中問題排查方式:

1、查詢出當前賬號的鎖定時間

select username,lock_date from dba_users where username=[username];

2、根據鎖定時間查看日誌文件

日誌存放路徑可以通過命令查看

技術分享圖片

可以通過日誌文件定位訪問的IP地址等信息(或者trace文件夾下的listener.log文件)。

技術分享圖片

在使用過程中,我們也可以修改允許的最大密碼輸入錯誤次數,具體修改方法如下:

1、查看當前設置值

select * from dba_profiles where RESOURCE_NAME=‘FAILED_LOGIN_ATTEMPTS‘;

2、修改為30次

alter profile default limit FAILED_LOGIN_ATTEMPTS 30;

3、修改為無限次(為安全起見,不建議使用)

alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;

Oracle數據庫用戶鎖定原因以及處理方式(ORA-28000)