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 インスタンスへの接続はログが出力されています。
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