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; 再验证一下,果真就能够了!