11g新增預設使用者密碼監測

Appleses發表於2016-01-30

Oracle11g中對於安全方面進行了很大的改進,比如增加了密碼大小寫驗證,增加了密碼複雜度的驗證等等,在11g中,Oracle還提供了一個檢視,指出那些使用者的密碼沒有被修改過,仍然是資料庫預設密碼。

 

 

這個檢視是DBA_USERS_WITH_DEFPWD

[oracle@bjtest ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on 星期二 8 31 19:42:27 2010

Copyright (c) 1982, 2009, Oracle.  All rights reserved.


連線到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select username from dba_users;

USERNAME
------------------------------
SYS
SYSTEM
A
TEST
YANGTK
TEST_TEST
OUTLN
MGMT_VIEW
FLOWS_FILES
MDSYS
ORDSYS
EXFSYS
DBSNMP
WMSYS
APPQOSSYS
APEX_030200
OWBSYS_AUDIT
ORDDATA
CTXSYS
ANONYMOUS
SYSMAN
XDB
ORDPLUGINS
OWBSYS
SI_INFORMTN_SCHEMA
OLAPSYS
ORACLE_OCM
XS$NULL
MDDATA
DIP
APEX_PUBLIC_USER
SPATIAL_CSW_ADMIN_USR
SPATIAL_WFS_ADMIN_USR

已選擇33行。

SQL> select username from dba_users_with_defpwd;

USERNAME
------------------------------
DIP
MDSYS
XS$NULL
SPATIAL_WFS_ADMIN_USR
CTXSYS
OLAPSYS
OUTLN
OWBSYS
SPATIAL_CSW_ADMIN_USR
EXFSYS
ORACLE_OCM
DBSNMP
MDDATA
ORDPLUGINS
ORDSYS
APPQOSSYS
ORDDATA
XDB
SI_INFORMTN_SCHEMA
WMSYS

已選擇20行。

在檢視中列出的20個使用者就是Oracle預設密碼的使用者,如果使用者密碼被修改,就會從這個檢視中消失:

SQL> alter user dbsnmp identified by newpassword;

使用者已更改。

SQL> select username from dba_users_with_defpwd;

USERNAME
------------------------------
DIP
XS$NULL
MDSYS
SPATIAL_WFS_ADMIN_USR
OUTLN
CTXSYS
OLAPSYS
SPATIAL_CSW_ADMIN_USR
OWBSYS
ORACLE_OCM
EXFSYS
ORDSYS
ORDPLUGINS
MDDATA
APPQOSSYS
XDB
ORDDATA
WMSYS
SI_INFORMTN_SCHEMA

已選擇19行。

而且Oracle並不是簡單的監測是否密碼被修改,而是檢查密碼是否修改為別的值,如果新密碼和舊密碼保持一致,那麼即使密碼被修改,這個使用者仍然在DBA_USERS_WITH_DEFPWD檢視中:

SQL> conn / as sysdba
已連線。
SQL> alter user xdb account unlock;

使用者已更改。

SQL> select * from dba_users_with_defpwd where username = 'XDB';

USERNAME
------------------------------
XDB

SQL> conn xdb/change_on_install
ERROR:
ORA-28001: the password has expired


更改 xdb 的口令
新口令:
重新鍵入新口令:
口令已更改
已連線。
SQL> conn xdb/change_on_install
已連線。
SQL> conn / as sysdba
已連線。
SQL> select * from dba_users_with_defpwd where username = 'XDB';

USERNAME
------------------------------
XDB

SQL> alter user xdb identified by change_on_install;

使用者已更改。

SQL> select * from dba_users_with_defpwd where username = 'XDB';

USERNAME
------------------------------
XDB

SQL> alter user xdb identified by newpassword;

使用者已更改。

SQL> select * from dba_users_with_defpwd where username = 'XDB';

未選定行

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28628435/viewspace-1984438/,如需轉載,請註明出處,否則將追究法律責任。

相關文章