1. 程式人生 > >修改Oracle資料庫使用者的密碼過期時間為無限期

修改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,

profile  from  dba_users  where username = 'MESSERIES';

--1. 建立新的profilePASSWD_UNLIMIT複製DEFAULTScript

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

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;

SELECT * FROMdba_profiles;

--2. 修改新建的profilePASSWD_UNLIMIT),密碼過期為不過期

ALTER  profilePASSWD_UNLIMIT limit PASSWORD_LIFE_TIME  UNLIMITED;

--3. 修改使用者的Profile為新的profile

alter user MESSERIES profile PASSWD_UNLIMIT;