#权限审计
权限审计指对YashanDB的所有系统特权进行审计,当对某个系统特权启用审计策略后,只要在SQL语句或其他操作中使用了该系统特权,就会被审计。
同时,YashanDB提供角色审计功能,在某个角色上启用审计策略后,所有直接被赋予给该角色的系统特权就可以被审计。
例如,在系统中创建如下权限审计策略并使能:
CREATE AUDIT POLICY up1
PRIVILEGES SELECT ANY TABLE, DELETE ANY TABLE;
AUDIT POLICY up1;
创建用户sales1和sales2:
CREATE USER sales1 IDENTIFIED BY sales1;
CREATE USER sales2 IDENTIFIED BY sales2;
GRANT CONNECT TO sales1;
GRANT RESOURCE TO sales1;
GRANT CONNECT TO sales2;
GRANT RESOURCE TO sales2;
对sales2用户授予所有表(sys schema下的表除外)的查询权限,并在sales1用户下创建示例表:
GRANT SELECT ANY TABLE TO sales2;
conn sales1/sales1
CREATE TABLE tb_sales1(c1 INT);
INSERT INTO tb_sales1 VALUES(1);
COMMIT;
以sales2用户登录并执行查询语句查询sales1用户下的示例表:
conn sales2/sales2
SELECT * FROM sales1.tb_sales1;
sales2用户查询sales1用户下的示例表这一操作触发了审计策略up1中的SELECT ANY TABLE权限审计,UNIFIED_AUDIT_TRAIL视图中将记录该权限审计记录:
SELECT dbusername,event_timestamp,sql_text,system_privilege_used,object_schema
FROM UNIFIED_AUDIT_TRAIL
WHERE system_privilege_used='SELECT ANY TABLE';
DBUSERNAME EVENT_TIMESTAMP SQL_TEXT SYSTEM_PRIVILEGE_USED OBJECT_SCHEMA
------------ --------------------------- -------------------------------- -------------------------- ---------------
SALES2 2022-11-10 13:46:35.869275 SELECT * FROM sales1.tb_sales1 SELECT ANY TABLE SALES1
Note:
YashanDB所有的系统特权审计项已在系统特权管理文档列出。