※ 本記事は2016年12月15日に公開されたものです。
DBA_USERS_WITH_DEFPWDというデータディクショナリビューがあります。
名前から想像がつくと思いますが、デフォルト(簡単な)パスワードを利用しているユーザーをリストしてくれるビューです。
SQL> select username from dba_users_with_defpwd; USERNAME -------------------------------------------------------------------------------- GSMUSER SYSDG APPQOSSYS GSMCATUSER SYSTEM XDB ORACLE_OCM SYSKM DIP ANONYMOUS AUDSYS GSMADMIN_INTERNAL SYSBACKUP OUTLN 14行が選択されました。
この中にはロックされているアカウントもあるので、DBA_USERSビューを結合すると見やすくなります。
SQL> select u.username, u.account_status 2 from dba_users u, dba_users_with_defpwd d 3 where u.username=d.username; USERNAME ACCOUNT_STATUS -------------------- -------------------------------- SYSTEM OPEN XDB EXPIRED & LOCKED GSMADMIN_INTERNAL EXPIRED & LOCKED DIP EXPIRED & LOCKED ANONYMOUS EXPIRED & LOCKED AUDSYS EXPIRED & LOCKED SYSKM EXPIRED & LOCKED APPQOSSYS EXPIRED & LOCKED ORACLE_OCM EXPIRED & LOCKED OUTLN EXPIRED & LOCKED GSMCATUSER EXPIRED & LOCKED GSMUSER EXPIRED & LOCKED SYSDG EXPIRED & LOCKED SYSBACKUP EXPIRED & LOCKED 14行が選択されました。
ここからオープン状態のユーザーではSYSTEMユーザーのパスワードがデフォルト(簡単なもの)であることが分かります。
DBSATレポートでは「User Accounts」セクションの「Users with Default Passwords」から確認できます。レポートを「USER.DEFPWD」で検索すると簡単に探すことができます。
ビューの名前はDEFPWDですが、SYSTEMのパスワードがMANAGERの場合だけでなく、ORACLEなど別の簡単なパスワードでもビューにリストされます。なお、このビューにリストされるのはOracle Databaseが自動的に作成するユーザーのみで、管理者が後から追加したユーザーが簡単なパスワードを利用しているかどうかは分かりません。また、このビューはOracle Database 11gR1以降にのみ存在します。
いくつかの制限事項はありますが、データベースがデフォルトで作成する強力な権限を持ったユーザーのパスワードが簡単なもののまま運用されていないかどうか確認するための便利なビューです。
また、「2日でセキュリティ・ガイド」マニュアルの「デフォルト・パスワードの検索および変更」にEnterprise Managerからの確認方法も記載されています。
簡単なパスワードの利用はアカウントを奪取されやすく、アカウントの奪取は不正アクセス被害の原因の上位に入っています。重要なデータが保存されている本番データベースでは、パスワードは推測されにくい複雑なものを利用して下さい。
DBA_USERS_WITH_DEFPWDデータディクショナリビュー。運用している本番システムでぜひ確認してみてください。

