#权限审计
权限审计指的是对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用户授予所有表的查询权限,并在sales1用户下创建示例表:
GRANT SELECT ANY TABLE TO sales2;
conn sales1/sales1
CREATE TABLE tb_sales1(c1 INT);
INSERT INTO tb_sales1 VALUES(1);
COMMIT;
以sales2用户登录并执行查询语句:
conn sales2/sales2
SELECT * FROM sales1.tb_sales1;
执行上述操作后,即可在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所有的系统权限审计项已在系统权限管理文档列出。