OceanBase AUDIT
描述
该语句用于配置或删除对 SQL 语句的审计规则。
说明
- 配置对 SQL 语句的审计规则时,您必须拥有
AUDIT SYSTEM
系统权限,且需要登录 ORAAUDITOR 用户,密码固定为 ORAAUDITOR。
- 配置对 SQL 语句的审计规则后,对所有会话立即生效。
- 需要通过系统配置项 audit_trail 开启审计功能,该语句配置的审计规则才能生效。
格式
/*语句审计*/
{AUDIT | NOAUDIT} statement_operation_clause [auditing_by_user_clause] [whenever_option]
/*对象审计*/
{AUDIT | NOAUDIT} object_operation_clause auditing_on_clause [whenever_option]
statement_operation_clause:
statement_operation_list
| ALL
| ALL STATEMENTS
statement_operation_list:
statement_operation [statement_operation...]
object_operation_clause:
object_operation_list
| ALL
object_operation_list:
object_operation [object_operation...]
auditing_on_clause:
ON obj_name
| ON DEFAULT
auditing_by_user_clause:
BY user_name [user_name...]
whenever_option:
WHENEVER NOT SUCCESSFUL
| WHENEVER SUCCESSFUL
statement_operation:
ALTER SYSTEM
| CLUSTER
| CONTEXT
| DATABASE LINK
| MATERIALIZED VIEW
| NOT EXISTS
| OUTLINE
| PROCEDURE
| PROFILE
| PUBLIC DATABASE LINK
| PUBLIC SYNONYM
| ROLE
| SEQUENCE
| SESSION
| SYNONYM
| SYSTEM AUDIT
| SYSTEM GRANT
| TABLE
| TABLESPACE
| TRIGGER
| TYPE
| USER
| VIEW
| ALTER SEQUENCE
| ALTER TABLE
| COMMENT TABLE
| DELETE TABLE
| EXECUTE PROCEDURE
| GRANT PROCEDURE
| GRANT SEQUENCE
| GRANT TABLE
| GRANT TYPE
| INSERT TABLE
| SELECT SEQUENCE
| SELECT TABLE
| UPDATE TABLE
object_operation:
ALTER
| AUDIT
| COMMENT
| DELETE
| EXECUTE
| FLASHBACK
| GRANT
| INDEX
| INSERT
| RENAME
| SELECT
| UPDATE
参数解释
参数 |
描述 |
---|---|
statement_operation |
语句审计操作类型。
|
object_operation |
对象审计操作类型。 |
obj_name |
被审计的对象名,支持的对象类型包括:
|
ON DEFAULT |
设置默认审计规则,对后续新创建的对象生效。 |
user_name |
指定用户名。 |
WHENEVER NOT SUCCESSFUL |
指定只有执行失败才触发审计。 |
WHENEVER SUCCESSFUL |
指定只有执行成功才触发审计。 |
可以审计的 SQL 语句类型如下表所示。
审计语句说明表 1
审计语句 |
说明 |
---|---|
ALTER SYSTEM |
审计 ALTER SYSTEM 语句。 |
CLUSTER |
审计 ADD CLUSTER 和 REMOVE CLUSTER 语句。 |
INDEX |
审计 CREATE/DROP/FLASHBACK/PURGE INDEX 语句。 |
NOT EXISTS |
审计因对象不存在导致失败的操作。 |
OUTLINE |
审计 CREATE/ALTER/DROP OUTLINE 语句。 |
PROCEDURE |
审计 CREATE/DROP PROCEDURE、CREATE/DROP FUNCTION 和 CREATE/DROP PACKAGE 语句。 |
PROFILE |
审计 CREATE/ALTER/DROP PROFILE 语句。 |
ROLE |
审计 CREATE/ALTER/DROP/SET ROLE 语句。 |
SEQUENCE |
审计 CREATE/DROP SEQUENCE 语句。 |
SESSION |
审计登入登出操作。 |
SYNONYM |
审计 CREATE/DROP SYNONYM 语句。 |
SYSTEM AUDIT |
审计 AUDIT/NOAUDIT 语句。 |
SYSTEM GRANT |
审计 GRANT/REVOKE 语句。 |
TABLE |
审计 CREATE/DROP/TRUNCATE TABLE 语句。 |
TABLESPACE |
审计 CREATE/ALTER/DROP TABLESPACE 语句。 |
TRIGGER |
审计 CREATE/ALTER/DROP TRIGGER 语句。 |
TYPE |
审计 CREATE/DROP TYPE 或 CREATE/DROP TYPE BODY 语句。 |
USER |
审计 CREATE/ALTER/DROP USER 语句。 |
VIEW |
审计 CREATE/DROP VIEW 语句。 |
审计语句说明表 2
审计语句 |
说明 |
---|---|
ALTER SEQUENCE |
审计 ALTER SEQUENCE 语句。 |
ALTER TABLE |
审计 ALTER TABLE 语句。 |
COMMENT TABLE |
审计 COMMENT ON TABLE/VIEW 语句。 |
DELETE TABLE |
审计 DELETE FROM TABLE/VIEW 语句。 |
EXECUTE PROCEDURE |
审计 CALL 语句。 |
GRANT PROCEDURE |
审计 GRANT/REVOKE obj_privilege ON PROCEDURE/FUNCTION/PACKAGE 语句。 |
GRANT SEQUENCE |
审计 GRANT/REVOKE obj_privilege ON SEQUENCE 语句。 |
GRANT TABLE |
审计 GRANT/REVOKE obj_privilege ON TABLE/VIEW 语句。 |
GRANT TYPE |
审计 GRANT/REVOKE obj_privilege ON TYPE 语句。 |
INSERT TABLE |
审计 INSERT INTO TABLE/VIEW 语句。 |
SELECT SEQUENCE |
审计所有包含 sequence.CURRVAL 或 sequence.NEXTVAL 的语句。 |
SELECT TABLE |
审计 SELECT TABLE/VIEW 语句。 |
UPDATE TABLE |
审计 UPDATE TABLE/VIEW 语句。 |
示例
- 对 test 用户的 table 相关操作语句在执行成功的情况下进行审计。
//将 ORAAUDITOR 用户解锁。
obclient> alter user ORAAUDITOR account unlock;
Query OK, 0 rows affected (5.76 sec)
//登录 ORAAUDITOR 用户。
obclient> exit;
Bye
[admin@k08j13249.eu95sqa /home/admin]
$obclient -h10.10.10.10 -P2883 -uORAAUDITOR@Oracle#test -pORAAUDITOR
obclient> AUDIT TABLE BY test WHENEVER SUCCESSFUL;
Query OK, 0 rows affected (21.14 sec)
- 对表 t1 的所有 INSERT、UPDATE 和 DELETE 操作进行审计。
obclient> AUDIT INSERT, UPDATE, DELETE on t1;
Query OK, 0 rows affected (31.62 sec)