ORACLE 11G用户账户和密码设置

用户密码有效期

ORA-28001:the password has expired

ORACLE 数据库默认密码有效期为 180 天。

  • 修改密码有效期为无限期
  1. 查看用户所属的profile

    SQL> SELECT USERNAME,PROFILE FROM DBA_USERS;
    
  2. 查看以上所述的概要文件的密码有效期设置

    SQL> select * from dba_profiles a where a.profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';
    
  3. 将密码有效期修改为无限期

    SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
    

    修改后无需重启数据库,修改后立即生效

  4. 需要重新修改用户密码

    SQL> alter user [username] identified by [password];
    
  • 修改密码有效期为固定期限

    SQL> alter profile default limit PASSWORD_LIFE_TIME 60;
    

    –//修改密码有效期为60天

密码到期前的宽限时间

ORA-28002: the password will expire within 7 days

  1. 查看当前用户密码状态

    SQL> select username,profile,password,account_status,lock_date,expiry_date from dba_users where username='GXSI';
    
    USERNAME		       PROFILE			      PASSWORD			     ACCOUNT_STATUS		      LOCK_DATE    EXPIRY_DATE
    ------------------------------ ------------------------------ ------------------------------ -------------------------------- ------------ ------------
    GXSI			       DEFAULT							     EXPIRED(GRACE)				   09-DEC-22
    
  2. 查看当前密码宽限期

    SQL> select * from dba_profiles a where a.profile='DEFAULT' and resource_name='PASSWORD_GRACE_TIME';
    
    PROFILE 		       RESOURCE_NAME			RESOURCE LIMIT
    ------------------------------ -------------------------------- -------- ----------------------------------------
    DEFAULT 		       PASSWORD_GRACE_TIME		PASSWORD 7
    
  3. 修改密码宽限期为不限期

    SQL> alter profile DEFAULT limit PASSWORD_GRACE_TIME unlimited;
    

修改后无需重启数据库,立即生效

  1. 重新修改一次用户密码

    SQL> alter user gxsi identified by gxsi;
    

用户账户锁定

  1. 锁定用户账户

    SQL> alter user [username] account lock;
    
  2. 解锁用户账户

    SQL> alter user [username] account unlock;
    
  3. 用户密码失效

    SQL> alter user [username] password expire;
    

附-ORACLE数据库中关于密码的几个参数

dba_profiles 中可以查看密码相关设置

SQL> SELECT * FROM DBA_PROFILES WHERE PROFILE='DEFAULT' AND RESOURCE_NAME LIKE 'PASSWORD%';

PROFILE                            RESOURCE_NAME                                        RESOURCE LIMIT
-------------------- -------------------------------- -------- ----------------------------------------
DEFAULT                            PASSWORD_LIFE_TIME                             PASSWORD 180
DEFAULT                            PASSWORD_REUSE_TIME                            PASSWORD UNLIMITED
DEFAULT                            PASSWORD_REUSE_MAX                             PASSWORD UNLIMITED
DEFAULT                            PASSWORD_VERIFY_FUNCTION                 PASSWORD NULL
DEFAULT                            PASSWORD_LOCK_TIME                             PASSWORD 1
DEFAULT                            PASSWORD_GRACE_TIME                            PASSWORD 7

6 rows selected.

解释如下:

FAILED_LOGIN_ATTEMPTS 整数设定登录到Oracle 数据库时可以失败的次数。一旦某用户尝试登录数据库的达到该值时,该用户的帐户就被锁定,只能由DBA能解锁。
PASSWORD_LIFE_TIME        设定口令的有效时间(天数),一旦超过这一时间,必须重新设口令。缺省为UNLIMITED.
PASSWORD_REUSE_TIME     许多系统不许用户重新启用过去用过的口令。该资源项设定了一个失效口令要经过多少天,用户才可以重新使用该口令。缺省为UNLIMITED.
PASSWORD_REUSE_MAX        重新启用一个先前用过的口令前必须对该口令进行重新设置的次数(重复用的次数)。
PASSWORD_LOCK_TIME        设定帐户被锁定的天数(当登录失败达到FAILED_LOGIN_ATTEMPTS时)。
PASSWORD_GRACE_TIME     设定在口令失效前,给予的重新设该口令的宽限天。当口令失效之后回,在登录时会出现警告信息显示该天数。如果没有在宽限天内修改口令,口令将失效。                         
PASSWORD_VERITY_FUNCTION 该资源项允许调用一个PL/SQL 来验证口令。Oracle公司已提供该应用 的脚本,但是只要愿意的话,用户可以制定自己的验证脚本。该参数的设定就是PL/SQL函数的名称。缺省为NULL.

oracle11g启动参数resource_limit无论设置为false还是true,密码有效期都是生效的。

附-ORACLE数据库中用户账户几种状态

user_status_map 中可以查看用户状态类型

SQL> select * from user_astatus_map;

     STATUS# STATUS
---------- ----------------------------------------------------------------
                 0 OPEN
                 1 EXPIRED
                 2 EXPIRED(GRACE)
                 4 LOCKED(TIMED)
                 8 LOCKED
                 5 EXPIRED & LOCKED(TIMED)
                 6 EXPIRED(GRACE) & LOCKED(TIMED)
                 9 EXPIRED & LOCKED
                10 EXPIRED(GRACE) & LOCKED

状态说明:

五种基本状态可分为三类:
正常状态;
锁定状态;
密码过期状态。
1、OPEN状态表示用户处于正常状态。
2、LOCKED和LOCKED(TIMED)表示用户被锁定状态。有如下两种情况:
DBA显式的通过SQL语句对用户进行锁定;
被动的锁定,默认情况下如果密码输入错误超过10次锁定;
该限制由PROFILE中的FAILED_LOGIN_ATTEMPTS控制,可查看视图DBA_PROFILES。
DBA显式锁定用户LOCKED
  alter user [username] account lock;
输入10次错误密码后被动锁定LOCKED(TIMED)
  这个限制是由PROFILE中的FAILED_LOGIN_ATTEMPTS控制的,该信息可以通过DBA_PROFILES视图查询

3、EXPIRED和EXPIRED(GRACE)表示用户密码过期状态。
  修改PROFILE中的PASSWORD_LIFE_TIME实现密码是否过期
    alter profile default limit password_life_time unlimited;
  密码过期后也可修改PROFILE中的PASSWORD_GRACE_TIME控制使用的天数:
    alter profile default limit password_grece_time 180;
  对于密码过期的用户OPEN:a
    alter user [username] identified by <password> account unlock;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值