Oracle的密碼過時規則是用Profile來管理的,系統默認只有一個Profile(DEFAULT),該profile的密碼過時規則爲180天;而全部的用戶都使用該DEFAULT的profile,因此若是修改DEFAULT的過時規則會影響全部的用戶。若是你想修改某個用戶的密碼讓其永不過時,則須要新建一個profile,修改該profile的過時規則爲無限期,這樣該用戶的過時規則會改變,而且不會影響到其餘用戶。sql
首先查看用戶的proifle是哪一個,通常是default:數據庫
sql>SELECT username,PROFILE FROM dba_users;ide
USERNAME PROFILEspa
------------------------------ ------------------------------code
SCOTT DEFAULTorm
EXFSYS DEFAULTip
ORDSYS DEFAULTstring
MDSYS DEFAULTit
FLOWS_FILES DEFAULTclass
OMUADM DEFAULT
SYSTEM DEFAULT
SYS DEFAULT
VPXADMIN DEFAULT
二、查看指定概要文件(如default)的密碼有效期設置:
sql>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
PROFILE RESOURCE_NAME RESOURCE
------------------------------ -------------------------------- --------
LIMIT
----------------------------------------
DEFAULT PASSWORD_LIFE_TIME PASSWORD
180
三、若是在這裏將密碼有效期由默認的180天修改爲「無限制」,則影響的是全部用戶:
sql>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
修改以後不須要重啓動數據庫,會當即生效。
注意:修改後,尚未被提示ORA-28002警告的賬戶不會再碰到一樣的提示;
已經被提示的賬戶必須再改一次密碼,例如
$sqlplus / as sysdba
sql> alter user vpxadmin identified by <原來的密碼> ----不用換新密碼
那麼若是你要爲某個用戶設置密碼永不過時,能夠這樣來作。好比修改vpxadmin用戶的密碼過時規則爲無限期UNLIMITED,只須要三個步驟:
1. 新建profile "VPXADMIN_UNLIMIT",規則與DEFAULT一致(由於一個profile中包含不少的項目,咱們此時只想修改過時規則,其餘的不變)
2. 修改profile "VPXADMIN_UNLIMIT",修改過時規則爲UNLIMITED
3. 將'VPXADMIN'用戶適用新的profile "PASSWD_UNLIMIT"
1. 建立新的profile(VPXADMIN_UNLIMIT)複製DEFAULT的Script
CREATE
PROFILE
"VPXADMIN_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
profile FROM dba_profiles;
PROFILE
------------------------------
DEFAULT
VPXADMIN_UNLIMIT
已建立成功。
--2. 修改新建的profile(VPXADMIN_UNLIMIT),密碼過時爲不過時
ALTER
profile VPXADMIN_UNLIMIT limit PASSWORD_LIFE_TIME UNLIMITED;
--3. 修改用戶的Profile爲新的profile
alter
user
VPXADMIN profile VPXADMIN_UNLIMIT; 再驗證一下,果真就能夠了!