#权限审计

权限审计指对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所有的系统特权审计项已在系统特权管理文档列出。

pdf-btn 下载文档
copy-btn 复制链接