0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Oracle Database 標準監査データを SYSLOG 転送する(Oracle Database 19c)

Last updated at Posted at 2023-03-17

Oracle Database には標準監査データを SYSLOG (RSYSLOG) に転送する機能を持っています。本記事では、Oracle Database の設定と、Oracle Grid Infrastructure の設定について記述します。

Oracle Database の出力

 SYSLOGを使った監査データの収集は、SYSユーザー監査と標準監査です。初期化パラメーター audit_trail を OS に設定し、初期化パラメーター audit_syslog_level にレベルを指定します。以下は標準監査とSYSユーザー監査に関係する初期化パラメーターの説明と確認内容です。

初期化パラメーター デフォルト値 説明
audit_trail none 標準監査の出力先を指定、デフォルト値はnoneだが、DBCAでデータベースを作成する場合はDBになる
audit_sys_operation TRUE SYSユーザーの監査を行うかを指定
audit_file_dest $ORACLE_HOME/dbms/audit 監査データの出力ディレクトリ
audit_syslog_level 監査データをSYSLOGに転送する際の出力レベル
SQL> SHOW PARAMETER audit

NAME                                 TYPE        VALUE
------------------------------------ ----------- ---------------------------------------------------
audit_file_dest                      string      /u01/app/oracle/product/19.0.0/dbhome_1/rdbms/audit
audit_sys_operations                 boolean     TRUE
audit_syslog_level                   string      LOCAL3.INFO
audit_trail                          string      OS
unified_audit_common_systemlog       string
unified_audit_sga_queue_size         integer     1048576
unified_audit_systemlog              string

上記の場合、初期化パラメーター audit_syslog_level に local3.info が指定されています。SYSLOG出力を行うには /etc/rsyslog.conf に監査データの出力設定を行い、rsyslogd を再起動します。

# grep local3.info /etc/rsyslog.conf
local3.info                     /var/log/oradbaudit.log
# systemctl stop rsyslogd
# systemctl start rsyslogd

SYSLOG出力例

以下の例はデータベースに対して SYSDBA 接続を行った場合の SYSLOG です。

Mar 17 09:52:54 rel78-7 journal: Oracle Audit[36190]: LENGTH : '254' ACTION :[7] 'CONNECT' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[6] 'oracle' CLIENT TERMINAL:[5] 'pts/0' STATUS:[1] '0' DBID:[9] '377954733' SESSIONID:[10] '4294967295' USERHOST:[7] 'rel78-7' CLIENT ADDRESS:[0] '' ACTION NUMBER:[3] '100'
Mar 17 09:52:54 rel78-7 journal: Oracle Audit[36190]: LENGTH : '252' ACTION :[6] 'COMMIT' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[6] 'oracle' CLIENT TERMINAL:[5] 'pts/0' STATUS:[1] '0' DBID:[9] '377954733' SESSIONID:[10] '4294967295' USERHOST:[7] 'rel78-7' CLIENT ADDRESS:[0] '' ACTION NUMBER:[2] '44'
Mar 17 09:52:54 rel78-7 journal: Oracle Audit[36190]: LENGTH : '252' ACTION :[6] 'COMMIT' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[6] 'oracle' CLIENT TERMINAL:[5] 'pts/0' STATUS:[1] '0' DBID:[9] '377954733' SESSIONID:[10] '4294967295' USERHOST:[7] 'rel78-7' CLIENT ADDRESS:[0] '' ACTION NUMBER:[2] '44'

以下の例は標準監査で AUDIT SESSION 文を実行後に一般ユーザーSCOTTで接続した例です。

Mar 17 10:00:46 rel78-7 journal: Oracle Audit[41361]: LENGTH: "223" SESSIONID:[7] "6673173" ENTRYID:[1] "1" USERID:[5] "SCOTT" ACTION:[3] "101" RETURNCODE:[1] "0" LOGOFF$PREAD:[1] "0" LOGOFF$LREAD:[4] "1089" LOGOFF$LWRITE:[1] "8" LOGOFF$DEAD:[1] "0" DBID:[9] "377954733" SESSIONCPU:[1] "5"
Mar 17 10:00:46 rel78-7 journal: Oracle Audit[41392]: LENGTH: "322" SESSIONID:[7] "6693173" ENTRYID:[1] "1" STATEMENT:[1] "1" USERID:[5] "SCOTT" USERHOST:[7] "rel78-7" TERMINAL:[5] "pts/0" ACTION:[3] "100" RETURNCODE:[1] "0" COMMENT$TEXT:[56] "Authenticated by: DATABASE;AUTHENTICATED IDENTITY: SCOTT" OS$USERID:[6] "oracle" DBID:[9] "377954733" PRIV$USED:[1] "5" CURRENT_USER:[5] "SCOTT"

Oracle Grid Infrastructure の設定

ASMインスタンスにも Oracle Database と同様の初期化パラメーターが設定できます。
Oracle Database 19c (+RU 19.14) 環境では ASM インスタンスの監査関係初期化パラメーターは以下のようになっていました。

SQL> SHOW PARAMETER audit
NAME                                 TYPE               VALUE
------------------------------------ ------------------ --------------------------------
audit_file_dest                      string             /u01/app/19.0.0/grid/rdbms/audit
audit_sys_operations                 boolean            TRUE
audit_syslog_level                   string             LOCAL0.INFO
audit_trail                          string             NONE
unified_audit_sga_queue_size         integer            1048576

インストール時には特に設定していませんでしたが、audit_syslog_level に LOCAL0.INFO が追加されています。
Oracle Grid Infrastructure インストール時に実行する root.sh スクリプトにより /etc/rsyslog.conf も自動的に修正され、以下の設定が追加されます。

# grep ora /etc/rsyslog.conf
local0.info                     /var/log/oraasmaudit.log
local1.info                     /var/log/oraiosaudit.log
local2.info                     /var/log/oraapxaudit.log

SYSLOG出力例

以下は ASM インスタンスに sysasm 権限で接続した時に出力される syslog メッセージです。初期化パラメーター audit_trail は設定されていないにも関わらず ASM インスタンスへの接続はログが出力されています。

oraasmaudit.log
Mar 17 09:45:12 rel78-7 journal: Oracle Audit[30419]: LENGTH : '243' ACTION :[7] 'CONNECT' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSASM' CLIENT USER:[4] 'grid' CLIENT TERMINAL:[5] 'pts/1' STATUS:[1] '0' DBID:[0] '' SESSIONID:[10] '4294967295' USERHOST:[7] 'rel85-1' CLIENT ADDRESS:[0] '' ACTION NUMBER:[3] '100'

Author: Noriyoshi Shinoda / Date: March 17, 2023

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?