修改Oracle資料庫使用者的密碼過期時間為無限期
Oracle的密碼過期規則是用Profile來管理的,系統預設只有一個Profile(DEFAULT),該profile的密碼過期規則為180天;
而所有的使用者都使用該DEFAULT的profile,所以如果修改DEFAULT的過期規則會影響所有的使用者;
所以我們新建一個profile,修改該profile的過期規則為無限期,在讓某個使用者適用於該profile,則該使用者的過期規則會變更。
以下舉例:修改MESSERIES使用者的密碼過期規則為UNLIMITED
1. 新建profile "PASSWD_UNLIMIT",規則與DEFAULT一致(因為一個profile中包含很多的專案,我們此時只想修改過期規則,其他的不變)
2. 修改profile "PASSWD_UNLIMIT",修改過期規則為UNLIMITED
3. 將'MESSERIES'使用者適用新的profile "PASSWD_UNLIMIT"
SQL如下:
SELECT * FROMdba_profiles s WHERE s.profile='DEFAULT' ANDresource_name='PASSWORD_LIFE_TIME';
SELECT * FROMdba_profiles s ;
--檢視使用者profile
select username, user_id, account_status,expiry_date,
--1. 建立新的profile(PASSWD_UNLIMIT)複製DEFAULT的Script
CREATE PROFILE "PASSWD_UNLIMIT" LIMIT
SESSIONS_PER_USER UNLIMITED
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL UNLIMITED
CONNECT_TIME UNLIMITED
IDLE_TIME UNLIMITED
LOGICAL_READS_PER_SESSION
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;
SELECT * FROMdba_profiles;
--2. 修改新建的profile(PASSWD_UNLIMIT),密碼過期為不過期
ALTER profilePASSWD_UNLIMIT limit PASSWORD_LIFE_TIME UNLIMITED;
--3. 修改使用者的Profile為新的profile
alter user MESSERIES profile PASSWD_UNLIMIT;