OceanBase V3 和 V4 版本。
目前(OceanBase V4.2.2)仅 OceanBase 数据库的 Oracle 模式支持安全审计功能。
ORAAUDITOR 可以进行,符合三权分立的要求。DBMS_AUDIT_MGMT系统包来手动清理或创建定时清理的JOB。审计检查的时机位于一条用户 SQL 执行完毕后准备回包之前。审计检查的流程如下:
insert into t1 select * from t2, t3 中包含了 (insert, t1)、 (select, t2)、(select t3) 3 个操作。audit_trail,将审计记录写到内部表或系统文件中。OceanBase 数据库的审计相关操作(例如:配置(AUDIT)和删除(NOAUDIT)审计规则)一般由内置的 ORAAUDITOR 用户进行,该用户默认是锁定状态。
obclient [SYS]> select user_name, info, is_locked, gmt_create, password_last_changed from all_virtual_user_real_agent where type=0;
+------------+-----------------------------+-----------+------------------------------+------------------------------+
| USER_NAME | INFO | IS_LOCKED | GMT_CREATE | PASSWORD_LAST_CHANGED |
+------------+-----------------------------+-----------+------------------------------+------------------------------+
| SYS | oracle system administrator | 0 | 26-NOV-23 11.07.39.784814 AM | 19-DEC-23 03.05.48.350343 PM |
| LBACSYS | oracle system administrator | 1 | 26-NOV-23 11.07.39.987810 AM | 26-NOV-23 11.07.39.987810 AM |
| ORAAUDITOR | oracle system administrator | 1 | 26-NOV-23 11.07.39.997663 AM | 26-NOV-23 11.07.39.997663 AM | --<<<<<<<<<<<
| DBMT | NULL | 0 | 12-DEC-23 03.23.45.864549 PM | 19-DEC-23 02.44.35.092381 PM |
| TESTTEST | NULL | 0 | 21-JAN-24 11.49.02.654048 PM | 21-JAN-24 11.49.02.646404 PM |
| TEST | NULL | 0 | 22-JAN-24 12.32.15.428677 AM | 22-JAN-24 12.32.15.421363 AM |
| TEST2 | NULL | 0 | 22-JAN-24 09.52.19.185531 AM | 22-JAN-24 09.52.19.175422 AM |
| TEST3 | NULL | 0 | 22-JAN-24 03.17.10.062230 PM | 22-JAN-24 07.00.53.448512 PM |
+------------+-----------------------------+-----------+------------------------------+------------------------------+
8 rows in set (0.004 sec)
sys 用户登录到 Oracle 租户解锁 ORAAUDITOR 用户。alter user oraauditor account unlock;
ORAAUDITOR 用户的登录密码alter user oraauditor identified by "AAaa11__";
ORAAUDITOR 用户默认不带任何权限,为了执行安全审计相关的操作,需要通过 GRANT 语句给 ORAAUDITOR 用户授予 CREATE SESSION 权限,允许ORAAUDITOR 用户登录数据库。如果允许 ORAAUDITOR 用户查看审计记录,需要授予 SELECT ANY DICTIONARY 权限。# 如果没有授予 `CREATE SESSION` 权限,则登录数据库时会报以下错误
[root@ocp ~]# obclient -h192.168.10.36 -P2883 -uoraauditor@test#obdemo -p'AAaa11__'
ERROR 5361 (HY000): user ORAAUDITOR lacks CREATE SESSION privilege; logon denied
sys 用户授予 ORAAUDITOR 用户的CREATE SESSION权限和SELECT ANY DICTIONARY 权限。obclient [SYS]> GRANT CREATE SESSION, SELECT ANY DICTIONARY TO ORAAUDITOR;
Query OK, 0 rows affected (0.007 sec)
ORAAUDITOR 用户登录数据库[root@ocp ~]# obclient -h192.168.10.36 -P2883 -uoraauditor@test#obdemo -p'AAaa11__'
Welcome to the OceanBase. Commands end with ; or \g.
Your OceanBase connection id is 31244
Server version: OceanBase 3.2.4.5 (r105040022023111323-57088ca24eab4348125068a9ccf182d068a6a883) (Built Nov 13 2023 23:56:19)
Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
obclient [ORAAUDITOR]>
通过租户级别的系统参数 audit_trail 开启审计功能并设置审计记录的存储位置,执行成功后立即生效。该参数的取值如下:
obclient [SYS]> show parameters like 'audit_trail';
+-------+----------+---------------+----------+-------------+-----------+-------+-----------------------------------------------------------------------------------+----------+--------+---------+-------------------+
| ZONE | SVR_TYPE | SVR_IP | SVR_PORT | NAME | DATA_TYPE | VALUE | INFO | SECTION | SCOPE | SOURCE | EDIT_LEVEL |
+-------+----------+---------------+----------+-------------+-----------+-------+-----------------------------------------------------------------------------------+----------+--------+---------+-------------------+
| zone1 | observer | 192.168.10.36 | 2882 | audit_trail | NULL | None | enables or disables database auditing, support NONE;OS;DB;DB,EXTENDED;DB_EXTENDED | OBSERVER | TENANT | DEFAULT | DYNAMIC_EFFECTIVE |
| zone3 | observer | 192.168.10.38 | 2882 | audit_trail | NULL | None | enables or disables database auditing, support NONE;OS;DB;DB,EXTENDED;DB_EXTENDED | OBSERVER | TENANT | DEFAULT | DYNAMIC_EFFECTIVE |
| zone2 | observer | 192.168.10.37 | 2882 | audit_trail | NULL | None | enables or disables database auditing, support NONE;OS;DB;DB,EXTENDED;DB_EXTENDED | OBSERVER | TENANT | DEFAULT | DYNAMIC_EFFECTIVE |
+-------+----------+---------------+----------+-------------+-----------+-------+-----------------------------------------------------------------------------------+----------+--------+---------+-------------------+
3 rows in set (0.044 sec)
obclient [SYS]> ALTER SYSTEM SET audit_trail = 'DB';
Query OK, 0 rows affected (0.022 sec)
obclient [SYS]> show parameters like 'audit_trail';
+-------+----------+---------------+----------+-------------+-----------+-------+-----------------------------------------------------------------------------------+----------+--------+---------+-------------------+