如果已經過期了,首先需要修改密碼,然后設置密碼為無限期。修改以sys用戶登陸。
修改密碼:alter user username identified by password 密碼可以和之前的密碼相同也可以不同。
修改數據庫密碼為無限期:
Oracle的密碼過期規則是用Profile來管理的,系統默認只有一個Profile(DEFAULT),該profile的密碼過期規則為180天。當超出這個時間時,密碼就會過期,數據庫不能連接。Oracle11g啟動參數resource_limit無論設置為false還是true,密碼有效期都是生效的。
有兩種處理方式:
一、直接修改用戶對應的Profile的密碼
1、查看用戶的proifle是哪個,一般是default:
select username,PROFILE FROM dba_users;
2、查看指定概要文件(如default)的密碼有效期設置:
select * FROM dba_profiles s Where s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
3、將密碼有效期由默認的180天修改成“無限制”:
alter PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
修改之后不需要重啟動數據庫,會立即生效。
二、新建一個Profile文件,設置其密碼,並設置其為當前用戶的Profile文件
1、新建profile "PASSWD_UNLIMIT",規則與DEFAULT一致(因為一個profile中包含很多的項目,我們此時只想修改過期規則,其他的不變)
2、修改profile "PASSWD_UNLIMIT",修改過期規則為UNLIMITED
3、將'MESSERIES'用戶適用新的profile "PASSWD_UNLIMIT"
1: SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
2: SELECT * FROM dba_profiles s ;
3: --查看用戶profile
4: select username, user_id, account_status,expiry_date, profile from dba_users where username = username;
5: --1. 創建新的profile(PASSWD_UNLIMIT)復制DEFAULT的Script
6: CREATE PROFILE "PASSWD_UNLIMIT" LIMIT
7: SESSIONS_PER_USER UNLIMITED
8: CPU_PER_SESSION UNLIMITED
9: CPU_PER_CALL UNLIMITED
10: CONNECT_TIME UNLIMITED
11: IDLE_TIME UNLIMITED
12: LOGICAL_READS_PER_SESSION UNLIMITED
13: LOGICAL_READS_PER_CALL UNLIMITED
14: COMPOSITE_LIMIT UNLIMITED
15: PRIVATE_SGA UNLIMITED
16: FAILED_LOGIN_ATTEMPTS 10
17: PASSWORD_LIFE_TIME 180
18: PASSWORD_REUSE_TIME UNLIMITED
19: PASSWORD_REUSE_MAX UNLIMITED
20: PASSWORD_LOCK_TIME 1
21: PASSWORD_GRACE_TIME 7
22: PASSWORD_VERIFY_FUNCTION NULL;
23: SELECT * FROM dba_profiles;
24: --2. 修改新建的profile(PASSWD_UNLIMIT),密碼過期為不過期
25: ALTER profile PASSWD_UNLIMIT limit PASSWORD_LIFE_TIME UNLIMITED;
26: --3. 修改用戶的Profile為新的profile
27: alter user username profile PASSWD_UNLIMIT;