※ 本記事は2017年3月30日に公開されたものです。
第21回「デフォルトで最初から作成されているユーザー」で事前定義のユーザーに関してどのように運用していくかの考え方を説明しましたが、そもそも現在のデータベースの中でどのユーザーがOracle Databaseが作成するユーザーなのか、マニュアルにリストがありますので紹介します。
12cR1 「Oracle Databaseから提供される事前定義されるユーザー・アカウント」
12cR2 「Oracle Databaseから提供される事前定義されるユーザー・アカウント」
Oracle Database 12cR1 (12.1.0.2)以降ではDBA_USERSデータディクショナリビューが拡張され、オラクルが内部的に利用しているユーザーかどうかを確認するためのORACLE_MAINTAINEという列が追加されました。この列の値がYのユーザーは オラクル社が提供するスクリプト(catalog.sqlやcatproc.sqlなど)以外の方法で変更しないでください。
SQL> select username, oracle_maintained from dba_users; USERNAME O ------------------------------ - SYS Y SYSTEM Y XS$NULL Y AAA N OUTLN Y DBSNMP Y APPQOSSYS Y DBSFWUSER Y GGSYS Y ANONYMOUS Y GSMADMIN_INTERNAL Y XDB Y WMSYS Y GSMCATUSER Y APP1 N (後略)
デフォルトで作成されるアカウントは利用しているかどうか分からないため、ロックしたときの影響がわからないのでロックできない場合には、マニュアルに記載されている各アカウントの用途からロック可能かどうかを判断してください。
なお、本当にそのユーザーが利用されていないかどうかを細かく確認したいときには、有償オプションになりますが、Oracle Database Vaultの権限分析(Privilege Analysis)機能(12cR2英語マニュアル、12cR1日本語マニュアル)が利用できます。この機能は12cR1からの新機能ですが詳細はまた別のエントリで。
