描述

该语句用于配置或删除对 SQL 语句的审计规则。

说明

  • 配置对 SQL 语句的审计规则时,您必须拥有 AUDIT SYSTEM 系统权限,且需要登录 ORAAUDITOR 用户,密码固定为 ORAAUDITOR。

  • 配置对 SQL 语句的审计规则后,对所有会话立即生效。

  • 需要通过系统配置项 audit_trail 开启审计功能,该语句配置的审计规则才能生效。

格式

  1. /*语句审计*/
  2. {AUDIT | NOAUDIT} statement_operation_clause [auditing_by_user_clause] [whenever_option]
  3. /*对象审计*/
  4. {AUDIT | NOAUDIT} object_operation_clause auditing_on_clause [whenever_option]
  5. statement_operation_clause:
  6. statement_operation_list
  7. | ALL
  8. | ALL STATEMENTS
  9. statement_operation_list:
  10. statement_operation [statement_operation...]
  11. object_operation_clause:
  12. object_operation_list
  13. | ALL
  14. object_operation_list:
  15. object_operation [object_operation...]
  16. auditing_on_clause:
  17. ON obj_name
  18. | ON DEFAULT
  19. auditing_by_user_clause:
  20. BY user_name [user_name...]
  21. whenever_option:
  22. WHENEVER NOT SUCCESSFUL
  23. | WHENEVER SUCCESSFUL
  24. statement_operation:
  25. ALTER SYSTEM
  26. | CLUSTER
  27. | CONTEXT
  28. | DATABASE LINK
  29. | MATERIALIZED VIEW
  30. | NOT EXISTS
  31. | OUTLINE
  32. | PROCEDURE
  33. | PROFILE
  34. | PUBLIC DATABASE LINK
  35. | PUBLIC SYNONYM
  36. | ROLE
  37. | SEQUENCE
  38. | SESSION
  39. | SYNONYM
  40. | SYSTEM AUDIT
  41. | SYSTEM GRANT
  42. | TABLE
  43. | TABLESPACE
  44. | TRIGGER
  45. | TYPE
  46. | USER
  47. | VIEW
  48. | ALTER SEQUENCE
  49. | ALTER TABLE
  50. | COMMENT TABLE
  51. | DELETE TABLE
  52. | EXECUTE PROCEDURE
  53. | GRANT PROCEDURE
  54. | GRANT SEQUENCE
  55. | GRANT TABLE
  56. | GRANT TYPE
  57. | INSERT TABLE
  58. | SELECT SEQUENCE
  59. | SELECT TABLE
  60. | UPDATE TABLE
  61. object_operation:
  62. ALTER
  63. | AUDIT
  64. | COMMENT
  65. | DELETE
  66. | EXECUTE
  67. | FLASHBACK
  68. | GRANT
  69. | INDEX
  70. | INSERT
  71. | RENAME
  72. | SELECT
  73. | UPDATE

参数解释

参数

描述

statement_operation

语句审计操作类型。

  • 如果指定 ALL,表示所有 审计语句说明表 1 中的操作。

  • 如果指定 ALL STATEMENTS,表示 statement_operation 中的所有操作。

object_operation

对象审计操作类型。

obj_name

被审计的对象名,支持的对象类型包括:

  • table

  • view

  • sequence

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 相关操作语句在执行成功的情况下进行审计。
  1. //将 ORAAUDITOR 用户解锁。
  2. obclient> alter user ORAAUDITOR account unlock;
  3. Query OK, 0 rows affected (5.76 sec)
  4. //登录 ORAAUDITOR 用户。
  5. obclient> exit;
  6. Bye
  7. [admin@k08j13249.eu95sqa /home/admin]
  8. $obclient -h10.10.10.10 -P2883 -uORAAUDITOR@Oracle#test -pORAAUDITOR
  9. obclient> AUDIT TABLE BY test WHENEVER SUCCESSFUL;
  10. Query OK, 0 rows affected (21.14 sec)
  • 对表 t1 的所有 INSERT、UPDATE 和 DELETE 操作进行审计。
  1. obclient> AUDIT INSERT, UPDATE, DELETE on t1;
  2. Query OK, 0 rows affected (31.62 sec)