| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
編集の要約なし
==Oracle Database10g アクティビティの監査==
[[Oracle][Oracle Database10g]]
===提供される監査===
*オプション指定(os, xml, xml,extendedにより、ファイルに書き出される場合、[http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19228-04/initparams.htm#70855 AUDIT_FILE_DEST]に書き出される。
<&lt;blockquote>&gt;SQLBINDおよびSQLTEXTには、データベース初期化ファイルinit.oraでAUDIT_TRAIL=DB_EXTENDEDを指定しないかぎりデータは移入されません。 これは、CLOBデータの移入が比較的高コストであるためです。 <&lt;/blockquote>&gt;
=====AUDIT_TRAILを変更=====
SQL> &gt; alter system set audit_trail = db scope=spfile;
System altered.
=====データベースを再起動し、確認=====
SQL> &gt; show parameters audit_
NAME TYPE VALUE
*特定のスキーマ・オブジェクトに対する操作の監査。スキーマ・オブジェクト操作の監査は、後続のセッションと同様に、現行のセッションにも適用されます。
SQL> &gt; audit all by access;
Audit succeeded.
=====監査対象のテーブル=====
SQL> &gt; desc exam.test
Name Null? Type
----------------------------------------- -------- ----------------------------
=====監査情報格納テーブルの作成=====
SQL> &gt; create table system.test_audit ( test_id number, up_date date,
2 new_name char(10), old_name char(10) );
=====トリガーの作成=====
SQL> &gt; create or replace trigger system.audit_test
2 before update of name on exam.test for each row
3 declare
=====1行更新=====
SQL> &gt; update test set name = 'AAAAA' where id = 4;
1行が更新されました。
=====監査テーブルが更新された=====
SQL> &gt; select * from system.test_audit;
TEST_ID UP_DATE NEW_NAME OLD_NAME
====FGA_POLICYの作成====
SQL> &gt; execute dbms_fga.add_policy ( - > &gt; object_schema => &gt; 'exam', - > &gt; object_name => &gt; 'test', - > &gt; policy_name => &gt; 'chk_exam_test', - > &gt; audit_condition => &gt; 'id > &gt; 0', - > &gt; audit_column => &gt; 'name', - > &gt; statement_types => &gt; 'insert,update,delete,select');
PL/SQL procedure successfully completed.
====監査対象のテーブルを操作====
SQL> &gt; conn exam/north123@oradb1;
接続されました。
SQL> &gt; select * from test
2 ;
3 ghi
SQL> &gt; insert into test values (5, 'mno');
1行が作成されました。
SQL> &gt; delete from test where id = 3;
1行が削除されました。

案内メニュー