現場在實施過程當中,基於安全考慮(用戶名和密碼以前暴露給其餘公司了),須要對用戶密碼進行修改。數據庫
修改過程很簡單(alter user [username] identified by [password];),可是在修改以後出現該用戶被鎖定的問題。安全
緣由:數據庫參數文件中設置了輸錯密碼的次數,登陸時當輸錯密碼的次數超過所設置的次數時,則鎖住該用戶。默認通常爲10次。輸錯密碼鎖住用戶的設計緣由:防止惡意的密碼攻擊。ide
一開始覺得是內部人員不知道密碼修改了,屢次嘗試登錄由於密碼錯誤致使帳戶鎖定。對帳號進行了手動解鎖(alter user [username] account unlock;),可是後續又出現屢次鎖定的狀況。spa
後來發現咱們在基於此用戶作過一些ETL以及創建DBLINK等,對這些內容進行同步的密碼更新解決用戶鎖定的問題。設計
下面是過程當中問題排查方式:日誌
一、查詢出當前帳號的鎖定時間blog
select username,lock_date from dba_users where username=[username];get
二、根據鎖定時間查看日誌文件同步
日誌存放路徑能夠經過命令查看it
能夠經過日誌文件定位訪問的IP地址等信息(或者trace文件夾下的listener.log文件)。
在使用過程當中,咱們也能夠修改容許的最大密碼輸入錯誤次數,具體修改方法以下:
一、查看當前設置值
select * from dba_profiles where RESOURCE_NAME='FAILED_LOGIN_ATTEMPTS';
二、修改成30次
alter profile default limit FAILED_LOGIN_ATTEMPTS 30;
三、修改成無限次(爲安全起見,不建議使用)
alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;