【Oracle】设置某用户密码永不过期

为ETL_TEST用户设置密码永不过期。

select  *  from  dba_users  where  username = 'ETL_TEST';

查看dba_users字典,可知道ETL_TEST用户到2015年11月23日到期。

select  username, user_id, account_status, expiry_date, profile  from  dba_users  where  username = 'ETL_TEST';

这里看一下profile参数为default。

SELECT username, PROFILE FROM  dba_users where   username ='ETL_TEST';

我们来看一下,profile参数为default,所指定的密码有效期为多长时间,如下:

SELECT  *  FROM  dba_profiles  s  WHERE  s.profile = 'DEFAULT'  AND  resource_name = 'PASSWORD_LIFE_TIME';

可以看到,profile置为default设置为密码180天后过期。

我们可以单独创建一个profile文件,为某用户使用。

创建名为passwd_unlimit的profile文件,设置其profile下密码限定为永不过期。

create profile  passwd_unlimit limit  PASSWORD_LIFE_TIME unlimited;

把passwd_unlimit的初始化参数设置到ETL_TEST用户下。如下:

alter user   ETL_TEST   profile   passwd_unlimit;

设置完成后,我们通过dba_users查看一下ETL_TEST用户的profile文件是否设置成功,如下:

select   username,  user_id,  account_status,  expiry_date, profilefrom   dba_users  where   username ='ETL_TEST';

可以看到ETL_TEST用户的profile文件设置为了passwd_unlimit,而passwd_unlimit的profile文件设定为密码永不过期了。

最后,我们检查一下,命名为PASSWD_UNLIMIT的profile文件下所附属的资源设置都有哪些,如下:

SELECT  *   FROM   dba_profiles  s  WHERE  s.profile = 'PASSWD_UNLIMIT';

可以看到其中PASSWORD_LIFE_TIME设置确实为UNLIMITED。

至此,我们已经实现了ETL_TEST用户密码永不过期的目标。

另外:补充,这里我们生产的命名为PASSWD_UNLIMIT的profile文件下还有其它的RESOURCE没有设置,我们需要对其它的RESOURCE也需要做出相应调整来满足要求。

例如,我后续又执行了下面的设置:

ALTER profile  passwd_unlimit limit COMPOSITE_LIMIT          UNLIMITED;

ALTER profile  passwd_unlimit limit SESSIONS_PER_USER        UNLIMITED;

ALTER profile  passwd_unlimit limit CPU_PER_SESSION          UNLIMITED;

ALTER profile  passwd_unlimit  limit CPU_PER_CALL             UNLIMITED;

ALTER profile  passwd_unlimit  limit LOGICAL_READS_PER_SESSIONUNLIMITED;

ALTER profile  passwd_unlimit  limit LOGICAL_READS_PER_CALL   UNLIMITED;

ALTER profile  passwd_unlimit limit IDLE_TIME                UNLIMITED;

ALTER profile  passwd_unlimit limit CONNECT_TIME             UNLIMITED;

ALTER profile  passwd_unlimit  limit PRIVATE_SGA              UNLIMITED;

ALTER profile  passwd_unlimit limit FAILED_LOGIN_ATTEMPTS    10      ;

ALTER profile  passwd_unlimit limit PASSWORD_REUSE_TIME      UNLIMITED;

ALTER profile  passwd_unlimit limit PASSWORD_REUSE_MAX       UNLIMITED;

ALTER profile  passwd_unlimit  limit PASSWORD_VERIFY_FUNCTION NULL    ;

ALTER profile  passwd_unlimit  limit PASSWORD_LOCK_TIME       1       ;

ALTER profile  passwd_unlimit  limit PASSWORD_GRACE_TIME      7       ;

我们再来查看一下命名为PASSWD_UNLIMIT的profile文件下所附属的资源设置,如下:

至此,对PASSWD_UNLIMIT的profile文件每项resource都进行配置,可以满足该用户的需求了。

 

小结:

1、创建profile的语法:

create profile   [PROFILElimit   [RESOURCE_TYPE [LIMIT];

例:create profile  passwd_unlimit  limit  PASSWORD_LIFE_TIME  unlimited;

 

2、改变用户的profile语法:

alter user   [user]  profile   [profile];

例:alter user   ETL_TEST   profile   passwd_unlimit;

 

3、改变某个profile中某项source的配置语法:

ALTER  profile   [profile]   limit   [source]   [option];

例:ALTER  profile   passwd_unlimitlimit COMPOSITE_LIMIT  UNLIMITED;

请使用浏览器的分享功能分享到微信等