マルチテナントデータベースのセキュリティの管理

この記事では、CDBやPDBのユーザー管理など、マルチテナントデータベースにおけるセキュリティ管理について解説します。

CDBのユーザーとロール

CDBにおける権限管理の基本的な枠組みは、非CDBと同様です。

  • ユーザーは使用者を識別する「認証の単位」となる
  • ユーザーは付与された権限に応じた操作を実行できる
  • ユーザーはオブジェクトの所有者となる
  • ロールは「権限やロールを論理的にグループ化したもの」

CDBにおけるユーザー

共通ユーザーは、主にCDBとPDB内のすべてのPDBのデータベース管理のために使用する。

ローカルユーザーは、いわゆる従来型の非CDBにおけるアプリケーション用のユーザーに対応する。

共通ユーザーとローカルユーザーの説明をまとめると以下の通り。

ユーザー説明
共通ユーザーCDB全体に存在するユーザー
CDBルートで作成する
SYS、SYSTEMユーザーは事前作成済みの共有ユーザー
ユーザー作成の共通ユーザーの名前は[C##]を前置きする必要がある
ローカルユーザー特定のPDBにのみ存在するユーザー
PDBごとに独立
従来型(非CDB)のユーザーに対応

CDBにおけるロール

ロールにおいても、CDB全体いに存在する共通のロールと、特定のPDBにのみ存在するローカルロールの2種類があります。

共通ロールとローカルルール:

ロールの種別説明
共通ロールCDB全体
CDBルートで作成する
DBAロールは事前作成済みの共通ロール
ユーザー作成の共通ロールの名前は[C##]を前置きする必要がある
ローカルロール特定のPDBにのみ存在するロール
PDBごとに独立
従来型のロールに対応

CDBおよびPDBのユーザー監査

Oracle の監査機能

Oracleには様々な監査機能があります。以下はOracleに搭載されている主な監査機能とその説明です。

監査機能説明
必須監査SYSDBAおよびSYSOPERでの接続、DBの起動停止をOS監査追跡に出力する
管理権限監査SYSDBAおよびSYSOPERなどの管理権限を持つユーザーの操作をOS監査証跡に出力する
AUDIT_SYS_OPERATIONS初期化パラメータに監査の有効無効を設定できる
標準監査AUDIT文で指定された操作を監査証跡に出力する
AUDIT_TRAIL初期化パラメータに監査の有無、監査証跡の出力先、出力形式を設定できる
ファイングレン監査詳細な監査動作を実現できる
DBMS_FGAパッケージを用いて監査設定を行う
統合監査Oracle 12cから導入された監査機能
CREATE AUDIT POLICY文で監査条件を構成した監査ポリシーを作成し、AUDIT POLICY文でどのユーザーに対してどの監査ポリシーを適用するかを指定する

混合モード

インストール直後の状態では、従来の監査機能と統合監査が共に動作した状態です。これを混合モードと呼びます。

トップレベル文のみ監査

Oracle 19cから、トップレベルの文のみを監査可能になっています。これにはONLY TOPLEVEL句を指定して監査ポリシーを作成します。トップレベル文のみを監査すると、多数のSQLを実行するストアドプログラムを実行した時、ストアドプログラムの実行のみが監査ログに出力され、ストアドプログラムが実行するSQLは監査ログに出力されないようになります。

新規報告

閉じる