Oracle用户密码问题(2)

同样的错误又出现了。
       到此,我们得出一个结论,在开启autotrace功能的时候,数据库会再创建一个会话,用新创建的会话来跟踪当前会话。所以,当用户密码即将过期时,开启autotrace功能时,创建新的会话时会因为返回ORA-2802而产生异常。

     二、11g新特性,密码延迟认证

        11g中,加入了用户密码延迟认证的特性,即用户如果在登录是输入了错误的密码,那么这个用户的登录验证会随着输入错误密码的次数的增加而增加,直到正确登录后重新计数。如下:

SQL> set time on

13:32:45 SQL>

conn darren/xxxxxx

conn darren/xxxxxx

conn darren/xxxxxx

conn darren/xxxxxx

conn darren/xxxxxx

conn darren/xxxxxx

conn darren/xxxxxx

ERROR:

ORA-01017: invalid username/password; logon denied

Warning: You are no longer connected to ORACLE.

13:32:59 SQL> ERROR:

ORA-01017: invalid username/password; logon denied

13:32:59 SQL> ERROR:

ORA-01017: invalid username/password; logon denied

13:32:599 SQL> ERROR:

ORA-01017: invalid username/password; logon denied

13:33:00 SQL> conn gyl/xxxxxx

ERROR:

ORA-01017: invalid username/password; logon denied

13:33:02 SQL>

ERROR:

ORA-01017: invalid username/password; logon denied

13:33:05 SQL>

ERROR:

ORA-01017: invalid username/password; logon denied

13:33:10 SQL>

ERROR:

ORA-01017: invalid username/password; logon denied

可以看到,验证的时间越来越长,如果继续增加错误的登录次数,验证的时间还会继续加长。如果是多个会话同时不断的用错误的密码来连接数据库,那么将会导致该用户的登录HANG住。如果想关闭这个特性,可以设置如下事件:

SQL> ALTER SYSTEM SET EVENT = ‘28401 TRACE NAME CONTEXT FOREVER, LEVEL 1’ SCOPE = SPFILE;

三、sys用户是不受PASSWORD_LIFE_TIME参数限制的
        四、在用户密码过期后,用户的状态(dba_user.account_status)不会立即更新为expired,只有当用户尝试连接到数据库的时候,才会对用户状态进行更新
        五、用户密码相关的一些参数

SQL> select * from dba_profiles where resource_name like '%PASSWORD%';

PROFILE RESOURCE_NAME              RESOURCE      LIMIT

---------- -------------------------------- -------- ----------

DEFAULT PASSWORD_LIFE_TIME        PASSWORD    UNLIMITED

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/387e11c2bf05554ae90dc5963cd133b6.html