ヘッダーをスキップ
Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス
11g リリース1(11.1)
E05686-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

54 DBMS_FGA

DBMS_FGAパッケージは、ファイングレイン・セキュリティ機能を提供します。

この章では、次の項目について説明します。


DBMS_FGAの使用方法


セキュリティ・モデル

監査方針を管理するには、DBMS_FGAに対する実行権限が必要です。監査機能はユーザー環境およびアプリケーション・コンテキスト値をすべて獲得できるため、ポリシーを管理できるのは権限を付与されたユーザーに限定されます。ポリシーのイベント・ハンドラ・モジュールは、モジュールの所有者の権限で実行されます。


使用上の注意

このパッケージは、コストベースの最適化にのみ使用できます。ルールベースのオプティマイザでは、行のフィルタの前に監査の監視が発生する可能性があるため、不要な監査レコードが生成される場合があります。 ルールベースのオプティマイザおよびコストベースのオプティマイザのどちらの場合でも、DBA_FGA_AUDIT_TRAILを参照して、SQLテキストおよび対応して発行されるバインド変数を分析できます。


DBMS_FGAサブプログラムの要約

表54-1 DBMS_FGAパッケージのサブプログラム

サブプログラム 説明

ADD_POLICYプロシージャ


監査条件として提供された述語を使用して、監査方針を作成します。

DISABLE_POLICYプロシージャ


監査方針を無効化します。

DROP_POLICYプロシージャ


監査方針を削除します。

ENABLE_POLICYプロシージャ


監査方針を有効化します。



ADD_POLICYプロシージャ

このプロシージャは、監査条件として提供された述語を使用して、監査方針を作成します。表またはビュー・オブジェクトのFGAポリシーの最大数は256です。

構文

DBMS_FGA.ADD_POLICY(
   object_schema      VARCHAR2,
   object_name        VARCHAR2, 
   policy_name        VARCHAR2,
   audit_condition    VARCHAR2,
   audit_column       VARCHAR2,
   handler_schema     VARCHAR2,
   handler_module     VARCHAR2,
   enable             BOOLEAN,
   statement_types    VARCHAR2,
   audit_trail        BINARY_INTEGER IN DEFAULT,
   audit_column_opts  BINARY_INTEGER IN DEFAULT);

パラメータ

表54-2 ADD_POLICYプロシージャのパラメータ

パラメータ 説明 デフォルト値

object_schema

監査するオブジェクトのスキーマ。(NULLの場合、現在のログオン・ユーザーのスキーマと想定されます。)

NULL

object_name

監査するオブジェクトの名前。

-

policy_name

ポリシーの一意の名前。

-

audit_condition

監視条件を示す行の条件。NULLを指定できます。これはTRUEと同様に動作します。

NULL

audit_column

アクセスのチェックを行う列。OLS非表示列やオブジェクト・タイプ列なども含まれます。デフォルトのNULLの場合、アクセスまたは影響を受ける列があれば監査が行われます。

NULL

handler_schema

イベント・ハンドラを含むスキーマ。デフォルトのNULLの場合、現在のスキーマが使用されます。

NULL

handler_module

イベント・ハンドラのファンクション名。必要に応じてパッケージ名も含みます。このファンクションは、問合せの監査条件に一致する最初の行が処理された後にのみ起動されます。プロシージャが例外で失敗した場合、ユーザーのSQL文も失敗します。

NULL

enable

TRUE(デフォルト)の場合、ポリシーを有効化します。

TRUE

statement_types

このポリシーを適用できるSQL文タイプ(INSERTUPDATEDELETEまたはSELECTのみ)。

SELECT

audit_trail

ファイングレイン監査レコードの宛先(DBまたはXML)。 また、fga_log$LSQLTEXTおよびLSQLBINDを移入するかどうかを指定します。

DB+EXTENDED

audit_column_opts

audit_columnパラメータに指定されたいずれかの列が問合せで参照された場合、またはそれらのすべての列が参照された場合にのみ、文を監査するかどうかを指定します。

ANY_COLUMNS


使用上の注意

V$XML_AUDIT_TRAILビュー

audit_trailパラメータに新しい値(XMLおよびXML+EXTENDED)を設定すると、ファイングレイン監査レコードがXML形式でオペレーティング・システムに書き込まれます。

オペレーティング・システム・ファイルに格納されている監査レコードは、アクセスの際にDBAが所有していないファイル・アクセス権が必要な場合があるため、データベースに格納されている監査レコードよりも安全性が高くなります。また、オペレーティング・システムに格納されている監査レコードは、データベースが一時的にアクセスできなくなった場合でも使用できるため、より高い可用性を提供します。

新しい動的ビューV$XML_AUDIT_TRAILでは、DBAがSQL問合せを介して監査レコードをXMLファイルから使用できるようになり、使いやすくなりました。 このビューを問い合せると、AUDIT_FILE_DESTディレクトリ内のすべてのXMLファイル(.xml拡張子を持つすべてのファイル)の解析およびリレーショナル表フォーマットでの表示が実行されます。

DBA_COMMON_AUDIT_TRAILビューには、標準監査レコードおよびファイングレイン監査レコードのV$XML_AUDIT_TRAIL動的ビューの内容が含まれています。

XML監査ファイルは、すべてのプラットフォームで拡張子.xmlを持つファイルに格納されるため、動的ビューでは、次のスキーマを使用して、すべてのプラットフォーム上で同じように監査情報が表示されます。

表54-3 V$XML_AUDIT_TRAIL動的ビューの要素

要素

AUDIT_TYPE

VARCHAR2(18)

SESSION_ID

NUMBER

PROXY_SESSIONID

NUMBER

STATEMENTID

NUMBER

ENTRYID

NUMBER

EXTENDED_TIMESTAMP

TIMESTAMP(6) WITH TIME ZONE

GLOBAL_UID

VARCHAR2(32)

DB_USER

VARCHAR2(30)

CLIENT_ID

VARCHAR2(64)

EXT_NAME

VARCHAR2(4000)

OS_USER

VARCHAR2(255)

USERHOST

VARCHAR2(128)

OS_PROCESS

VARCHAR2(16)

TERMINAL

VARCHAR2(255)

INSTANCE_NUMBER

NUMBER

OBJECT_SCHEMA

VARCHAR2(30)

OBJECT_NAME

VARCHAR2(128)

POLICY_NAME

VARCHAR2(30)

STATEMENT_TYPE

VARCHAR2(28)

TRANSACTIONID

RAW(8)

SCN

NUMBER

COMMENT_TEXT

VARCHAR2(4000)

SQL_BIND

VARCHAR2(4000)

SQL_TEXT

VARCHAR2(4000)


使用上の注意

DBMS_FGA.ADD_POLICY (
   object_schema      =>  'scott',
   object_name        =>  'emp',
   policy_name        =>  'mypolicy1',
   audit_condition    =>  'sal < 100',
   audit_column       =>  'comm,sal',
   handler_schema     =>   NULL,
   handler_module     =>   NULL,
   enable             =>   TRUE,
   statement_types    =>  'INSERT, UPDATE',
   audit_trail        =>   DBMS_FGA.XML + DBMS_FGA.EXTENDED,
   audit_column_opts  =>   DBMS_FGA.ANY_COLUMNS);

DISABLE_POLICYプロシージャ

このプロシージャは、監査方針を無効化します。

構文

DBMS_FGA.DISABLE_POLICY(
   object_schema  VARCHAR2,
   object_name    VARCHAR2, 
   policy_name    VARCHAR2 );

パラメータ

表54-4 DISABLE_POLICYプロシージャのパラメータ

パラメータ 説明

object_schema

監査するオブジェクトのスキーマ。(NULLの場合、現行のログオン・ユーザーのスキーマと想定されます。)

object_name

監査するオブジェクトの名前。

policy_name

ポリシーの一意の名前。


object_schemaのデフォルト値はNULLです。(NULLの場合、現行のログオン・ユーザーのスキーマと想定されます。)

DBMS_FGA.DISABLE_POLICY (
object_schema   =>  'scott',
object_name     =>  'emp',
policy_name     =>  'mypolicy1');

DROP_POLICYプロシージャ

このプロシージャは、監査方針を削除します。

構文

DBMS_FGA.DROP_POLICY(
   object_schema  VARCHAR2,
   object_name    VARCHAR2, 
   policy_name    VARCHAR2 );

パラメータ

表54-5 DROP_POLICYプロシージャのパラメータ

パラメータ 説明

object_schema

監査するオブジェクトのスキーマ。(NULLの場合、現行のログオン・ユーザーのスキーマと想定されます。)

object_name

監査するオブジェクトの名前。

policy_name

ポリシーの一意の名前。


使用上の注意

DBMS_FGAプロシージャは、現行のDMLトランザクションがある場合、それらがDDLイベント・トリガーの内部にないかぎり、操作前にコミットします。 DDLトランザクションでは、DBMS_FGAプロシージャはDDLトランザクションの一部となります。 object_schemaのデフォルト値はNULLです。(NULLの場合、現行のログオン・ユーザーのスキーマと想定されます。)

DBMS_FGA.DROP_POLICY (
object_schema   =>  'scott',
object_name     =>  'emp',
policy_name     =>  'mypolicy1');

ENABLE_POLICYプロシージャ

このプロシージャは、監査方針を有効化します。

構文

DBMS_FGA.ENABLE_POLICY(
   object_schema  VARCHAR2,
   object_name    VARCHAR2,
   policy_name    VARCHAR2,
   enable         BOOLEAN);

パラメータ

表54-6 ENABLE_POLICYプロシージャのパラメータ

パラメータ 説明

object_schema

監査するオブジェクトのスキーマ。(NULLの場合、現行のログオン・ユーザーのスキーマと想定されます。)

object_name

監査するオブジェクトの名前。

policy_name

ポリシーの一意の名前。

enable

TRUE(デフォルト)の場合、ポリシーを有効化します。


DBMS_FGA.ENABLE_POLICY (
object_schema    =>  'scott',
object_name      =>  'emp',
policy_name      =>  'mypolicy1',
enable           =>   TRUE);