暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

密码即将过期提示的影响

老杨 2019-04-18
557

问题描述

当用户密码即将过期时,在登录时Oracle会提示ORA-28002错误,但是并不会影响正常的登录。
本来认为这个信息并没有太大的影响,但是没想到这个错误会导致SET AUTOTRACE功能失效:

solaris*orcl-/home/oracle$ sqlplus test/test
SQL*Plus: Release 11.2.0.3.0 Production ON Fri Jul 13 11:27:28 2012
Copyright (c) 1982, 2011, Oracle. ALL rights reserved.
ERROR:
ORA-28002: the password will expire WITHIN 1 days
Connected TO:
Oracle DATABASE 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
WITH the Partitioning, Oracle Label Security AND REAL Application Testing options
SQL> SET autot ON
ERROR:
ORA-28002: the password will expire WITHIN 1 days
 
SP2-0619: Error while connecting
SP2-0611: Error enabling STATISTICS report
SQL> ALTER USER test IDENTIFIED BY test;
USER altered.
SQL> SET autot ON
ERROR:
ORA-24315: illegal attribute TYPE
 
SP2-0619: Error while connecting
SP2-0611: Error enabling STATISTICS report
SQL> exit
Disconnected FROM Oracle DATABASE 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
WITH the Partitioning, Oracle Label Security AND REAL Application Testing options
solaris*orcl-/home/oracle$ sqlplus test/test
SQL*Plus: Release 11.2.0.3.0 Production ON Fri Jul 13 11:27:52 2012
Copyright (c) 1982, 2011, Oracle. ALL rights reserved.
 
Connected TO:
Oracle DATABASE 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
WITH the Partitioning, Oracle Label Security AND REAL Application Testing options
SQL> SET autot ON
SQL> INSERT INTO t VALUES (1, 'a');
1 ROW created.
 
Execution Plan
----------------------------------------------------------
---------------------------------------------------------------------------------
| Id  | Operation                | Name | ROWS  | Bytes | Cost (%CPU)| TIME     |
---------------------------------------------------------------------------------
|   0 | INSERT STATEMENT         |      |     1 |    12 |     1   (0)| 00:00:01 |
|   1 |  LOAD TABLE CONVENTIONAL | T    |       |       |            |          |
---------------------------------------------------------------------------------
 
Statistics
----------------------------------------------------------
         71  recursive calls
          9  db block gets
         75  consistent gets
         10  physical reads
       1284  redo SIZE
        829  bytes sent via SQL*Net TO client
        785  bytes received via SQL*Net FROM client
          3  SQL*Net roundtrips TO/FROM client
          9  sorts (memory)
          0  sorts (disk)
          1  ROWS processed

很显然,由于ORA-28002错误导致了SET AUTOTRACE ON功能启用时碰到了错误。当修改了当前的用户密码,则ORA-28002不再出现后,SET AUTOTRACE ON的功能恢复正常。
根据上面的信息其实可以判断,在启用SET AUTOTRACE ON功能时,sqlplus会自动创建一个新的会话来记录当前会话的统计信息。
而启用的新的会话会使用当前会话登录时保存的密码来进行登录,因此可以通过下面的例子来验证这个推论:

专家解答

很显然,由于ORA-28002错误导致了SET AUTOTRACE ON功能启用时碰到了错误。当修改了当前的用户密码,则ORA-28002不再出现后,SET AUTOTRACE ON的功能恢复正常。
根据上面的信息其实可以判断,在启用SET AUTOTRACE ON功能时,sqlplus会自动创建一个新的会话来记录当前会话的统计信息。
而启用的新的会话会使用当前会话登录时保存的密码来进行登录,因此可以通过下面的例子来验证这个推论:

solaris*orcl-/home/oracle$ sqlplus test/test
SQL*Plus: Release 11.2.0.3.0 Production ON Sun Jul 15 01:28:38 2012
Copyright (c) 1982, 2011, Oracle. ALL rights reserved.
 
Connected TO:
Oracle DATABASE 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
WITH the Partitioning, Oracle Label Security AND REAL Application Testing options
SQL> SET autot ON
SQL> SET autot off
SQL> ALTER USER test IDENTIFIED BY test1;
USER altered.
SQL> SET autot ON
ERROR:
ORA-01017: invalid username/password; logon denied
 
SP2-0619: Error while connecting
SP2-0611: Error enabling STATISTICS report

果然,在用户登录后,如果当前的密码被修改,是会导致SET AUTOTRACE ON启用时报错不正确的用户名密码错误的。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论