LoginSignup
0
0

Autonomous Database:一定間隔で監査レコードをオブジェクト・ストレージにCSV形式でエクスポートしてみた

Posted at

1. 事前準備

エクスポートしたCSVファイルを保存するオブジェクト・ストレージ・バケットを作成します。

スクリーンショット 2023-12-14 18.10.43.png

また、今回の検証ではバケットへのアクセスにリソース・プリンシパルを使用しますので、Autonomous Databaseインスタンスを含む動的グループ、オブジェクト・ストレージ・バケットへのアクセスを許可するポリシーを正しく設定し、 Autonomous Databaseのリソース・プリンシパルを有効にしておきます。

2.パイプラインの作成と設定

SQLcliで、adminユーザとしてAutonomous Databaseに接続します。

[opc@tools ~]$ sql admin/Demo#1Demo#1@adb
 

SQLcl: Release 23.3 Production on Thu Dec 14 09:09:28 2023

Copyright (c) 1982, 2023, Oracle.  All rights reserved.

Last Successful login time: Thu Dec 14 2023 09:09:35 +00:00

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.21.0.1.0

SQL> 

unified_audit_trailビューの内容をCSV形式でエクスポートするパイプライン「EXPORT_UNIFIED_AUDIT_TRAIL_CSV」を作成します。

SQL> BEGIN
         DBMS_CLOUD_PIPELINE.CREATE_PIPELINE(
             pipeline_name => 'EXPORT_UNIFIED_AUDIT_TRAIL_CSV',
             pipeline_type => 'EXPORT',
             description   => 'Export unified_audit_trail to object store in CSV format'
         );
     END;
     /

PL/SQL procedure successfully completed.

SQL> 

パイプライン「EXPORT_UNIFIED_AUDIT_TRAIL_CSV」の属性を設定します。
こちらの例では、event_timestamp_utc列をタイムスタンプ・キーとして、unified_audit_trailビューを10分間隔で指定したバケットにCSV形式でエクスポートする設定を行っています。

SQL> BEGIN
         DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE(
             pipeline_name => 'EXPORT_UNIFIED_AUDIT_TRAIL_CSV',
             attributes    => JSON_OBJECT('credential_name' VALUE 'OCI$RESOURCE_PRINCIPAL',
                                          'location' VALUE 'https://objectstorage.ap-tokyo-1.oraclecloud.com/n/namespace/b/unified_audit_trail/o/',
                                          'table_name' VALUE 'unified_audit_trail',
                                          'key_column' VALUE 'event_timestamp_utc',
                                          'format' VALUE '{"type": "csv", "quote":"\""}',
                                          'priority' VALUE 'MEDIUM',
                                          'interval' VALUE '10')
         );
     END;
     /

PL/SQL procedure successfully completed.

SQL> 

unified_audit_trailのレコード数を確認します。

SQL> SELECT COUNT(*) FROM unified_audit_trail;

   COUNT(*) 
___________ 
         64 

SQL> 

unified_audit_trailには64件の監査レコードがあることがわかりました。

バケットの内容を確認します。
スクリーンショット 2023-12-14 18.10.53.png
この時点では、パイプラインを開始していないので、まだファイルはありません。

3. パイプラインの開始と動作確認

準備が整ったので、パイプラインEXPORT_UNIFIED_AUDIT_TRAIL_CSVを開始します。

SQL> BEGIN
         DBMS_CLOUD_PIPELINE.START_PIPELINE(
             pipeline_name => 'EXPORT_UNIFIED_AUDIT_TRAIL_CSV'
         );
     END;
     /

PL/SQL procedure successfully completed.

SQL> 

バケットの内容を確認します。
スクリーンショット 2023-12-14 18.11.08.png
CSVファイルが作成されていることが確認できました。

作成されたCSVファイルをダウンロードして、内容を確認してみます。
スクリーンショット 2023-12-14 18.26.28.png

データが64行含まれていることがわかりました。

unified_audit_trail内の64件の監査レコードが、CSVファイルとしてエクスポートされたことが確認できました。

監査レコードを増やすため、別のセッションから正しくないパスワードでadminユーザへのログインを複数回試みます。
(Autonomous Databaseでは、デフォルトでユーザのログイン失敗の監査が有効になっています。)

unified_audit_trailのレコード数を確認します。

SQL> SELECT COUNT(*) FROM unified_audit_trail;

   COUNT(*) 
___________ 
         66 

SQL> 

unified_audit_trailのレコード数が2件増えていることがわかりました。

10分(パイプラインの実行間隔)ほど待って、バケットの中身を確認してみます。

スクリーンショット 2023-12-14 18.21.02.png

CSVファイルが追加されていることが確認できました。

追加されたCSVファイルをダウンロードして、内容を確認してみます。
スクリーンショット 2023-12-14 18.22.57.png
データが2行含まれていることがわかりました。

unified_audit_trailに追加された2件のレコードがCSVファイルとしてエクスポートされたことが確認できました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0