23
copyright© Aqua Systems, Inc. 2004 Oracle データベースの監査機能 株式会社アクアシステムズ アプリケーション統括部 PAU001J-00-00SE 株式会社アクアシステムズ アプリケーション統括部

Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

  • Upload
    lamtruc

  • View
    225

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

Oracle データベースの監査機能

株式会社アクアシステムズアプリケーション統括部

PAU001J-00-00SE

株式会社アクアシステムズアプリケーション統括部

Page 2: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

株式会社アクアシステムズ

Oracleデータベースを専門とする技術者集団

Oracleデータベースチューニング&監視ツール

「Performance Analyzer」の開発/販売

Oracleデータベース診断及びパフォーマンスチューニング

Oracleデータベースに関するコンサルティング

Oracleデータベース運用管理

Oracleデータベースを使用した業務アプリケーションの開発 

Page 3: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

Agenda

データベースの監査

システムエグゼとアクアシステムズの取り組み

Page 4: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

データベースの監査

Page 5: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

Oracleデータベースの監査

標準監査(AUDIT)ファイングレイン監査(FGA)

DBA監査

トリガー

LogMiner

Page 6: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

標準監査(1)

3種類の監査

文監査特定のDDL文(データベース構造の変更)による操作を監査証跡に残す

ex.) テーブルの作成・変更をするDDL文を監査権限監査特定の権限による操作やログインを監査証跡に残すex.) CREATE ANY TRIGER権限が必要な処理を監査オブジェクト監査特定のオブジェクトへの操作を監査証跡に残すex.) SCOTT.EMPテーブルに対するSELECT文を監査

監査証跡の出力先

ファイル(UNIX)

(AUDIT_FILE_DESTパラメータで指定したディレクトリ

デフォルト : $ORACLE_HOME/rdbms/audit)イベントビューア(Windows)テーブル(SYS.AUD$表、DBA_AUDIT_%ビューを参照)

Page 7: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

標準監査(2)

監査できる情報の一例

OSユーザー名

DBユーザー名

クライアントマシン名

日時操作対象のオブジェクト操作の種類操作の成否

SQL文(10g only)

実行時のSCN(10g only)

など

Page 8: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

標準監査の設定方法(1)

1. AUDIT_TRAILパラメータを設定

DB or TRUE : 監査証跡をSYS.AUD$に記録

DB_EXTENDED (10g only)

: DB or TUREに加えてSQL文、SCNもSYS.AUD$に記録

OS : 監査証跡をファイル(UNIX)またはイベントビューア(Windows)に記録(SQL文・SCNは記録されない)

NONE or FALSE : 無効

2. AUDIT_FILE_DESTパラメータを設定

UNIXでAUDIT_TRAIL=OSの場合のみ必要

3. データベースを再起動

先に変更したパラメータを有効にするため

Page 9: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

標準監査の設定方法(2)

4. 監査対象処理を設定

AUDIT文を利用

文監査を設定するためにはAUDIT SYSTEM権限が必要

オブジェクト監査を設定するためには、監査対象のオブジェクトが自分のスキーマにあるか、AUDIT ANY権限が必要

監査対象のオブジェクトがDIRECTORYオブジェクトの場合、自分のスキーマにあってもAUDIT ANY権限が必要

解除にはNOAUDIT文を使用

5. 監査結果の参照

監査証跡がDBであれば、SYS.AUD$もしくは、それへのVIEWであるDBA_AUDIT_EXISTS、DBA_AUDIT_OBJECT、DBA_AUDIT_SESSION、DBA_AUDIT_STATEMENT、DBA_AUDIT_TRAILを参照

監査証跡がOSであれば、AUDIT_FILE_DESTのaudit_{セッションID}.audというファイル(UNIX)またはイベントビューア(Windows)に出力される

Page 10: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

標準監査の例(1)

テーブルの作成・変更・削除を監査(文監査)

設定AUDIT TABLE BY ACCESS;

監査対象処理の実行CREATE TABLE tbl01 (col01 numeric);

監査結果の参照

SQL> SELECT os_username, username, terminal, timestamp, owner, obj_name, 2 action_name, returncode 3 FROM dba_audit_trail;

OS_USERNAME USERNAME TERMINAL TIMESTAMP OWNER OBJ_NAME ACTION_NAME RETURNCODE----------- -------- -------- ----------------- ----- -------- ------------ ----------AQUA\asami SCOTT AQUA 04-10-22 12:00:34 SCOTT TBL01 CREATE TABLE 0

Page 11: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

標準監査の例(2)

データベースへの接続を監査(権限監査)

設定AUDIT CONNECT;

監査対象処理の実行CONNECT scott/tiger

監査結果の参照

SQL> SELECT os_username, username, terminal, timestamp, action_name, logoff_time, 2 sessionid, returncode 3 FROM dba_audit_session;

OS_USERNAME USERNAME TERMINAL TIMESTAMP ACTION_NAME LOGOFF_TIME RETURNCODE----------- -------- -------- ----------------- ----------- ----------- ----------AQUA\asami SCOTT AQUA 04-10-22 12:01:02 LOGON 0

Page 12: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

標準監査の例(3)

データベースへの接続を監査(オブジェクト監査)

設定AUDIT select,insert,update,delete ON emp BY ACCESS;

監査対象処理の実行SELECT * FROM emp;

UPDATE emp SET job = 'SALESMAN' WHERE empno = 7900;

監査結果の参照

SQL> SELECT os_username, username, terminal, timestamp, action_name, ses_actions, 2 sessionid, returncode 3 FROM dba_audit_object;

OS_USERNAME USERNAME TERMINAL TIMESTAMP ACTION_NAME SES_ACTIONS RETURNCODE----------- -------- -------- ----------------- ----------- ----------- ----------AQUA\asami SCOTT AQUA 04-10-22 12:11:04 SELECT 0AQUA\asami SCOTT AQUA 04-10-22 12:11:21 UPDATE 0

Page 13: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

ファイングレイン監査(1)

オブジェクト監査の拡張で、特定の行または特定の列へのアクセスを監査証跡に残す

ex.) SCOTT.EMP表のEMPNO=7900の行のENAME列にアクセスする操作を監査証跡に残す

9iではSELECT文のみ監査可能

10gではSELECT文およびDML文を監査可能

Enterprise Editionが必要

コストベースオプティマイザで動作していること監査証跡の出力先

テーブル(SYS.FGA_LOG$表、DBA_FGA_AUDIT_TRAILビューを参照)

Page 14: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

ファイングレイン監査(2)

監査できる情報の一例

日時データベースユーザー名

OSユーザー名

クライアントマシン名操作対象の表またはビュー

SQL文実行時のSCN

など

Page 15: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

ファイングレイン監査の設定方法

1. ポリシーを作成

DBMS_FGA.ADD_POLICYプロシージャで監査対象となるオブジェクト、行、列を指定する

DBMS_FGAパッケージの実行権限が必要

解除には、DBMS_FGA.DROP_POLICYプロシージャを使用

2. 監査結果の参照

SYS.FGA_LOG$もしくは、それへのVIEWであるDBA_FGA_AUDIT_TRAILを参照

Page 16: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

ファイングレイン監査の例

SCOTT.EMP表のEMPNO=7900の行のENAME列へのアクセスを監査

設定

execute dbms_fga.add_policy(object_schema => 'scott',object_name => 'emp',policy_name => 'emp01',audit_condition => 'empno=7900',audit_column => 'ename');

監査対象処理の実行SELECT empno, ename, deptno FROM emp where empno > 7800;

監査結果の参照SELECT timestamp, db_user, os_user, userhost, object_schema, object_name,

policy_name, sql_text, client_idFROM dba_fga_audit_trail;

TIMESTAMP DB_USER OS_USER USERHOST OBJECT_SCHEMA OBJECT_NAME POLICY_NAME SQL_TEXT CLIENT_ID----------------- ------- ---------- ------------ ------------- ------------ ----------- ------------------------------------ ---------04-10-22 12:03:13 SCOTT AQUA\asami AQUAWG\AQUA SCOTT EMP EMP01 select * from emp where empno > 7800

Page 17: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

DBA監査

データベース管理者の操作を監査証跡に残す

SYSDBA, SYSOPER権限での処理を監査監査証跡の出力先

ファイル(UNIX)

(AUDIT_FILE_DESTパラメータで指定したディレクトリ

デフォルト : $ORACLE_HOME/rdbms/audit)イベントビューア(Windows)

監査できる情報日時SQL文DBユーザー名権限名OSユーザー名端末名操作の成否

Page 18: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

DBA監査の設定方法

1. AUDIT_SYS_OPERATIONSパラメータを設定

TRUE : 有効

FALSE : 無効

2. AUDIT_FILE_DESTパラメータを設定

UNIXの場合のみ必要

3. データベースを再起動

先に変更したパラメータを有効にするため4. 監査結果の参照

AUDIT_FILE_DESTのaudit_{セッションID}.audというファイル(UNIX)またはイベントビューア(Windows)に出力される

DB起動時の情報はAUDIT_FILE_DESTの設定に関わらず

$ORACLE_HOME/rdbms/auditに出力される

有効になっていなくても、CONNECTは監査される

Page 19: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

DBA監査の例

sysユーザーのログイン

$ORACLE_HOME/rdbms/audit/ora_19663.audAudit file /opt/oracle/product/9.2.0/rdbms/audit/ora_19663.audOracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionWith the Partitioning, Real Application Clusters, OLAP and Oracle Data Mining optionsJServer Release 9.2.0.4.0 - ProductionORACLE_HOME = /opt/oracle/product/9.2.0System name: LinuxNode name: dbsvRelease: 2.4.9-e.25.52mlVersion: #1 Thu Feb 19 14:45:48 JST 2004Machine: i686Instance name: orclRedo thread mounted by this instance: 1Oracle process number: 13Unix process pid: 19663, image: oracle@rac (TNS V1-V3)

Fri Oct 22 12:39:17 2004ACTION : 'CONNECT'DATABASE USER: 'sys'PRIVILEGE : SYSDBACLIENT USER: SYSTEMCLIENT TERMINAL: AQUA021STATUS: 0

Page 20: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

システムエグゼとアクアシステムズの取り組み

Page 21: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

Oracle DB監査ソフト・サービスの提供

Oracle DB監査ソフトウェアの提供(アクアシステムズ、2004/12予定)

監査コンサルティングサービスの提供(システムエグゼ)

上述の監査ソフトウェアを利用したデータベース監査の導入・設定コンサルティング、問題発生時の追跡・報告書作成サービス

Page 22: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

copyright© Aqua Systems, Inc. 2004

株式会社システムエグゼ 営業部

担当 : 高橋、青木

TEL : 03-5542-5592FAX : 03-5542-5594

お問い合わせ先

Page 23: Oracle データベースの監査機能 - データベースに特化 … SCOTT.EMP表のEMPNO=7900 の行のENAME列にアクセスする操作 を監査証跡に残す 9iではSELECT文のみ監査可能

Copyright© 株式会社アクアシステムズ 2004

http://www.aqua-systems.co.jp/

[email protected]