(Oracle)数据库用户的密码过期时间如何修改为永不过期

时间:2024-02-22 09:34:15
Oracle的密码过期规则是用Profile来管理的,系统默认只有一个Profile(DEFAULT),该profile的密码过期规则为180天。那么如何修改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 * FROM dba_profiles s WHERE s.profile=\'DEFAULT\' AND resource_name=\'PASSWORD_LIFE_TIME\';
SELECT * FROM dba_profiles s ;
--查看用户profile
select username, user_id, account_status,expiry_date, profile from dba_users where username = \'MESSERIES\';
--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 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 * FROM dba_profiles;
--2. 修改新建的profile(PASSWD_UNLIMIT),密码过期为不过期
ALTER profile PASSWD_UNLIMIT limit PASSWORD_LIFE_TIME UNLIMITED;
--3. 修改用户的Profile为新的profile
alter user MESSERIES profile PASSWD_UNLIMIT;  

原文链接:http://blog.csdn.net/jump_gu/article/details/54094287