その監査ログきちんと扱えてますか?
統合監査で始める監査ログの
活用秘伝技大公開!
@mogmet
2016/09/12 JPOUG in 15 minutes #1
About me
• twitter: @mogmet
• 好物:iOS, php, MySQL, Oracle
• 仕事:インフラエンジニア→iOSエンジニア→フリーランスなDBA
• ブログとか: http://mogmet.com/
• 作ったアプリたち↓

ワンナイト人狼 for iPhone STARBUCKSHOLIC
最近12c Platinum移
行試験受けてきました
Oracleの監査方法について
今までのOracleでの監査
今までのOracleでの監査
必須監査
特権ユーザ監査
audit_file_dest
今までのOracleでの監査
標準監査
audit_file_dest
SYS.AUD$
今までのOracleでの監査
FGA監査 SYS.FGA_LOG$
今までのOracleでの監査
Oracle Database
Vault監査
DVSYS.
AUDIT_TRAIL$
いろんなところに設定とか
格納場所がちらばりすぎている!!
12cからのOracleでの監査
12cからのOracleでの監査
必須監査
特権ユーザ監査
標準監査
FGA監査
Oracle Database Vault監査
12cからのOracleでの監査
DataPump操作監査
RMAN操作監査
Oracle Label Seurity操作監査
Real Application Security操作監査
etc…
12cからのOracleでの監査
全て1つにまとめました!
12cからのOracleでの監査
SYS.UNIFIED_AUDIT_TRAIL
に!!!!
12cからのOracleでの監査
そう、統合監査ならね
How to backup
How to backup
audit_file_dest
ファイルをそのまま
バックアップ
How to backup
RMANを用いて
DBもしくは表領域単
位でバックアップ
DVSYS.
AUDIT_TRAIL$
SYS.FGA_LOG$
SYS.AUD$
RMAN
SYS.
UNIFIED_AUDIT_TRAIL
How to backup
expdpで論理的に
バックアップ
expdp
DVSYS.
AUDIT_TRAIL$
SYS.FGA_LOG$
SYS.AUD$
SYS.
UNIFIED_AUDIT_TRAIL
ではhow to read?
How to read
audit_file_dest
そのまま
見る!
How to read
RMANを用いて
DBもしくは表領域単
位でリストア
DVSYS.
AUDIT_TRAIL$
SYS.FGA_LOG$
SYS.AUD$
RMAN
SYS.
UNIFIED_AUDIT_TRAIL
How to read
impdpで論理的に
戻す
impdpDVSYS.
AUDIT_TRAIL$
FGA_LOG$
AUD$
UNIFIED_AUDIT_TRAIL
監査ログを見る
シチュエーション
cf:http://oldhatcreative.com/sites/default/files/styles/blog-full-preview/public/blog-featured-images/A_long_time_ago.png?itok=GC0cDPZt
cf: http://amaraawathi.com/files/article_images/746.jpg
cf: http://amaraawathi.com/files/article_images/746.jpg
弊社システムは統合監査を使って
監査を行い、毎日監査ログを
バックアップ後パージしている。
そのため、過去一年の監査ログを
バックアップから復元して調査
したいな♡
超宇宙的意訳
cf: http://amaraawathi.com/files/article_images/746.jpg
あ、でも、監査ログは本番環境
使ってみてね★
超宇宙的意訳
RMANを用いた場合
RMANを用いた場合
昔の物理バックアップから戻すって
表領域のPITRでするしかない!?
RMANを用いた場合
そもそも本番環境で
そんなリスキーなことしたくない
結論:RMANで戻す
REJECTED
そういえば12cの新機能で
http://docs.oracle.com/cd/E57425_01/121/BRADV/
release_changes.htm#GUID-942161A2-
E33E-4AE2-8122-F90DAB15FA58
バックアップの新機能
RMANバックアップからの
表および表パーティションのリカバリ
これなら物理バックアップ
でもいけるのでは!?
RMANバックアップからの
表および表パーティションのリカバリ
仕組み
RMANバックアップからの
表および表パーティションのリカバリ
補助インスタンス 本番インスタンス
RMANバックアップ
リストア
expdp x impdpでインポート
補助インスタンス使うのは
なんか負荷高くなりそうで怖くない?
RMANバックアップからの
表および表パーティションのリカバリ
やっぱリスキー!
RMANバックアップからの
表および表パーティションのリカバリ
結論:RMANバックアップからの
表および表パーティションのリカバリ
REJECTED
物理バックアップから戻す
REJECTED
そもそも期間データを
取り出すのに向いていない
impdpを用いた場合
impdpを用いた場合
1年分のダンプのファイル数
すごくない?!
impdpを用いた場合
365回もimpdpを入力するのは

手間感がある
結論:impdpで戻す
REJECTED
(๑´•.̫ • `๑)
更に別の方法を考える
外部表
外部表
外部ファイルを表として扱える!
外部表
外部表
DATAPUMPアクセスドライバ
を使うとダンプファイルが読み込める
!!!111
試しにやってみる
外部表
expdpのtablesオプションで指定の表だけを
ダンプしたダンプファイルを生成
外部表
expdp system/oracle tables=backaud
dumpfile=backaud1.dmp
外部表
expdpで生成した
ダンプファイルで外部表を作ってみる
外部表
CREATE TABLE MUKASHI_NO_KANSA (
"AUDIT_TYPE" VARCHAR2(64),
"SESSIONID" NUMBER,
...
"DIRECT_PATH_NUM_COLUMNS_LOADED" NUMBER
)
ORGANIZATION EXTERNAL (
TYPE ORACLE_DATAPUMP
DEFAULT DIRECTORY data_pump_dir
LOCATION ('backaud1.dmp', 'backaud2.dmp')
);
複数ファイル指定できる!
…
)
TYPE ORACLE_DATAPUMP
DEFAULT DIRECTORY data_pump_dir
LOCATION ('backaud1.dmp', 'backaud2.dmp')
103 );
Table created.
とりあえずできた!
ので中身を見てみる
外部表
SQL> select * from MUKASHI_NO_KANSA;
ERROR:
ORA-29913: error in executing
ODCIEXTTABLEOPEN callout
ORA-39324: cannot load data from Data Pump
dump file "/u01/app/oracle/admin/prod1/
dpdump/backaud1.dmp"
no rows selected
expdpのファイルは
使えない!
外部表
外部表のDATAPUMPアクセスドライバ
を用いてて出力してあげる
外部表
CREATE TABLE backup_na_kansa
ORGANIZATION EXTERNAL
(
TYPE ORACLE_DATAPUMP
DEFAULT DIRECTORY data_pump_dir
LOCATION ('backaud1.dmp')
)
AS SELECT * FROM unified_audit_trail;
data_pump_dirに、backaud1.dmp
が出力される
外部表
One more chance
外部表
CREATE TABLE MUKASHI_NO_KANSA (
"AUDIT_TYPE" VARCHAR2(64),
"SESSIONID" NUMBER,
...
"DIRECT_PATH_NUM_COLUMNS_LOADED" NUMBER
)
ORGANIZATION EXTERNAL (
TYPE ORACLE_DATAPUMP
DEFAULT DIRECTORY data_pump_dir
LOCATION ('backaud1.dmp', 'backaud2.dmp')
); 今度は外部表作成時に出来た
ダンプファイルを指定
SQL> select count(*) from MUKASHI_NO_KANSA;
COUNT(*)
----------
240
複数のバックアップからでも外部
表が出来た!!!
外部表
結論:外部表を使う
ACCEPTED
まとめ
まとめ
• 物理バックアップから戻すときは期間のデータ
を取り出しづらい
• 期間のデータなら論理バックアップのほうが

扱いやすい
• 外部表のDATAPUMPアクセスドライバを使えば
ファイル名の指定だけでデータを読み込める
Thank you for listening!

Oracle how-to-audit-backup