oracle修改用戶密碼過期時間


  Oracle默認在default概要文件中設置了“PASSWORD_LIFE_TIME=180天”,導致密碼過期,程序無法使用,業務進程會提示無法連接數據庫等字樣。

--查詢默認密碼過期時間
SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

  

  密碼過期規則是用Profile來管理的,系統默認只有一個Profile(DEFAULT),通過下面語句可查看到幾乎所有的用戶都使用該DEFAULT的profile,所以如果修改DEFAULT的過期規則會影響所有的用戶。

--查詢系統用戶所使用的proifle
SELECT username,PROFILE FROM dba_users;

   

所以,修改分為兩種:

1. 修改所有用戶的密碼永不過期

--修改所有用戶的密碼過期時間為無限制
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

修改之后會立即生效,還沒有被提示ORA-28002警告的帳戶不會再碰到同樣的提示,已經被提示的帳戶必須再改一次密碼。

--再修改一次密碼
alter user scott identified by 1234; --1234為scott用戶原來的密碼

2. 修改某個用戶密碼永不過期

需要三步:

1. 新建profile "TOOL_UNLIMITED",規則與DEFAULT一致(因為一個profile中包含很多的項目,我們此時只修改過期規則,其他的不變)

--創建新的profile(TOOL_UNLIMITED)復制DEFAULT的Script
CREATE PROFILE "TOOL_UNLIMITED" LIMIT
 SESSIONS_PER_USER UNLIMITED
 CPU_PER_SESSION UNLIMITED
 CPU_PER_CALL UNLIMITED
 CONNECT_TIME UNLIMITED
 IDLE_TIME UNLIMITED
 LOGICAL_READS_PER_SESSION UNLIMITED
 LOGICAL_READS_PER_CALL UNLIMITED
 COMPOSITE_LIMIT UNLIMITED
 PRIVATE_SGA UNLIMITED
 FAILED_LOGIN_ATTEMPTS 10
 PASSWORD_LIFE_TIME 180
 PASSWORD_REUSE_TIME UNLIMITED
 PASSWORD_REUSE_MAX UNLIMITED
 PASSWORD_LOCK_TIME 1
 PASSWORD_GRACE_TIME 7
 PASSWORD_VERIFY_FUNCTION NULL;

2. 修改profile "TOOL_UNLIMITED",修改過期規則為UNLIMITED

 --修改新建的profile(TOOL_UNLIMITED),密碼過期為不過期
ALTER profile TOOL_UNLIMITED limit PASSWORD_LIFE_TIME UNLIMITED;

3. 將'TOOL'用戶適用新的profile "TOOL_UNLIMITED"

--修改用戶的Profile為新的profile
alter user TOOL  profile TOOL_UNLIMITED;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM