天天看點

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

Oracle在11g中對于安全方面進行了很大的改進,比如增加了密碼大小寫驗證,增加了密碼複雜度的驗證等等,在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;

已選擇20行。

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

SQL> alter user dbsnmp identified by newpassword;

使用者已更改。

已選擇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';

SQL> conn xdb/change_on_install

ERROR:

ORA-28001: the password has expired

更改 xdb 的密碼

新密碼:

重新鍵入新密碼:

密碼已更改

SQL> alter user xdb identified by change_on_install;

SQL> alter user xdb identified by newpassword;

未標明行