現状の確認
SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing';
FALSEとなっている場合は統合監査が無効です。
統合監査の有効化
ファイルのリネーム
cd c:\Oracle\product\19.3.0\dbhome_1\bin
dir orauni*
2021/04/22 05:16 8,704 orauniaud19.dll.dbl
move orauniaud19.dll.dbl orauniaud19.dll
dir orauni*
2021/04/22 05:16 8,704 orauniaud19.dll
Oracleサービス再起動
net stop OracleServiceCDB
net start OracleServiceCDB
結果の確認
SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing';
TRUEになっていれば有効化されています。
ログオン監査の有効化
統合監査を有効化した時点では、ログオン失敗の監査のみが有効になっています。
CREATE AUDIT POLICY LOGIN_BY_ALL_USERS ACTIONS LOGON;
AUDIT POLICY LOGIN_BY_ALL_USERS;
上の例では、全てのユーザによるログインを監査します。
ユーザを特定することも可能です。
CREATE AUDIT POLICY LOGIN_BY_SPECIFIC_USERS ACTIONS LOGON;
AUDIT POLICY LOGIN_BY_SPECIFIC_USERS BY USER01;
上の例では、DBA20548ユーザによるログインを監査します。
複数ユーザを列挙することもできます。
AUDIT POLICY LOGIN_BY_SPECIFIC_USERS BY USER01, USER02;
逆に特定のユーザを除外することもできます。
CREATE AUDIT POLICY LOGIN_BY_EXCEPTED_USERS ACTIONS LOGON;
AUDIT POLICY LOGIN_BY_EXCEPTED_USERS EXCEPT USER01, USER02;
応用
特定のOSユーザ、マシンからのログインのみを監査することが可能です。
- 特定のホスト名
CREATE AUDIT POLICY LOGIN_BY_SPECIFIC_HOSTS ACTIONS LOGON
WHEN 'SYS_CONTEXT(''USERENV'',''HOST'') IN (''Machine01'',''Machine02'')'
EVALUATE PER SESSION;
AUDIT POLICY LOGIN_BY_SPECIFIC_HOSTS;
NOT IN も可能です。
CREATE AUDIT POLICY LOGIN_BY_SPECIFIC_HOSTS ACTIONS LOGON
WHEN 'SYS_CONTEXT(''USERENV'',''HOST'') NOT IN (''Machine01'',''Machine02'')'
EVALUATE PER SESSION;
AUDIT POLICY LOGIN_BY_SPECIFIC_HOSTS;