2.開発や運用・管理のための権限に対するコントロール
データベース上で利用される権限はオブジェクト権限以外にも開発や運用・管理のために利用される様々な権限があり、これらもきちんと管理・分離しておく必要がある。
従来SYS、SYSTEMなどのDBAユーザーとそのパスワードがシステム部門の運用現場などでは複数の人で共有されているケースが多かった。しかしこの状態では実際の業務内容以上に過大な権限を保有する人が増え、内部情報漏えいを引き起こす温床になる。また万一事件・事故が起きた場合に誰が操作をしたのか特定できなくなるという問題もある。
従って今後は開発者、運用・管理者などに対して「便利で簡単、楽だから」という理由で安易にSYSを使わせたり、DBA権限(DBA Role)を付与したりするようなことは行うべきではない。
例えばデータベースの運用者は多くの場合、稼働しているデータベースの起動・停止やバックアップ・リカバリ、チューニングなどを主な業務にしている場合が多く、アプリケーションが取り扱っている実際のビジネスデータ(会計システムであれば財務会計に関する情報)を検索・更新する必要はほとんどないことが多い。にもかかわらずデータベース運用者はDBA権限を持っていて、格納された全ての情報を閲覧・変更することが可能であり、全ての設定変更ができることが多い。
さらに操作履歴をログとして収集していたとしても、データベース内にあれば改ざんすることができる。また悪意がなくても誤操作でデータを変更してしまう可能性もある。
しかし現実的にはSYSやSYSTEMやDBA Roleを使わなければならない作業は存在する。そのためDBA権限を制限する、という従来のデータベースでは不可能だった権限分離を実現するために開発されたのがOracle Database Vaultである。Oracle Database VaultではDBAの管理者権限を制限し、ユーザー管理者、アプリケーション管理者といった複数の管理者に管理業務と権限を分割することが可能となっている。