oracle 细颗粒审计FGA
来源:互联网 发布:呼死你软件免费版 编辑:程序博客网 时间:2024/04/27 17:27
FGA ---Fine-Grained Audit ---每个FGA审计只能针对一个表或者视图
grant execute on DBMS_FGA to scott
conn scott/tiger
--建立触发的存储过程
set serveroutput on
CREATE or replace PROCEDURE log_emps_salary
(schema# varchar2, table# varchar2, policy# varchar2)
iS
BEGIN
dbms_output.put_line('用户 '||schema#||' 的表 '||table#||' 被查看了,触发了 '||policy#);
END;
/
--增加FGA审计
begin
dbms_fga.add_policy (
object_schema => 'scott',
object_name => 'emp',
policy_name => 'audit_emps_salary',
audit_condition=> 'deptno=10',
audit_column => 'sal',
handler_schema => 'scott',
handler_module => 'log_emps_salary',
enable => TRUE,
statement_types=> 'select' );
end;
/
这个审计策会记录任何用户访问了emp表的deptno为10的sal值得select操作
************************************************************************************************************************************************************
DBMS_FGA.ADD_POLICY ( *
object_schema VARCHAR2, --schema的名字,表或视图的拥有者 *
object_name VARCHAR2, --对象名,表或视图的名字 *
policy_name VARCHAR2, --审计策略名字,它和数据库中其他对象一样,需要有一个不重复,唯一的名字 *
audit_condition VARCHAR2, --筛选条件比如可以选择哪些符合条件的操作被记录 *
audit_column VARCHAR2, --表中的某一列,可以只记录对表中某一列的操作.如果不指定表示审计所有的列 *
handler_schema VARCHAR2, --是下面的handler_module的拥有者,其实也只能是创建policy的用户,而上面的object_schema可以是任意用户 *
handler_module VARCHAR2,--可以是一个一个存储过程或函数,但监测到任何一条符合条件的操作时执行它. *
enable BOOLEAN, --true 或false表示policy是开启或关闭状态,如果是false表示不进行审计 *
statement_types VARCHAR2, --表示哪些操作将被审计,可以填上select,insert,update,delete中的一个或几个 *
audit_trail BINARY_INTEGER IN DEFAULT,--有参数db,xml表示审计到的信息保存到数据库中或是以xml文件形式保存到磁盘上 *
audit_column_opts BINARY_INTEGER IN DEFAULT); --和audit_conlumn配合使用,any_columns,all_columns两个选项 *
*************************************************************************************************************************************************************
select * from emp;
select ename from emp;
--删除审计
EXEC dbms_fga.drop_policy ( -
object_schema => 'scott', -
object_name => 'emp', -
policy_name => 'audit_emps_salary');
--启用审计
begin
dbms_fga.enable_policy (
object_schema => 'scott',
object_name => 'emp',
policy_name => 'audit_emps_salary' );
end;
/
--禁用审计
begin
dbms_fga.disable_policy (
object_schema => 'scott',
object_name => 'emp',
policy_name => 'audit_emps_salary' );
end;
/
----fga相关的数据字典-------------------
DBA_FGA_AUDIT_TRAIL --查看审计记录
ALL_AUDIT_POLICIES
DBA_AUDIT_POLICIES
grant execute on DBMS_FGA to scott
conn scott/tiger
--建立触发的存储过程
set serveroutput on
CREATE or replace PROCEDURE log_emps_salary
(schema# varchar2, table# varchar2, policy# varchar2)
iS
BEGIN
dbms_output.put_line('用户 '||schema#||' 的表 '||table#||' 被查看了,触发了 '||policy#);
END;
/
--增加FGA审计
begin
dbms_fga.add_policy (
object_schema => 'scott',
object_name => 'emp',
policy_name => 'audit_emps_salary',
audit_condition=> 'deptno=10',
audit_column => 'sal',
handler_schema => 'scott',
handler_module => 'log_emps_salary',
enable => TRUE,
statement_types=> 'select' );
end;
/
这个审计策会记录任何用户访问了emp表的deptno为10的sal值得select操作
************************************************************************************************************************************************************
DBMS_FGA.ADD_POLICY ( *
object_schema VARCHAR2, --schema的名字,表或视图的拥有者 *
object_name VARCHAR2, --对象名,表或视图的名字 *
policy_name VARCHAR2, --审计策略名字,它和数据库中其他对象一样,需要有一个不重复,唯一的名字 *
audit_condition VARCHAR2, --筛选条件比如可以选择哪些符合条件的操作被记录 *
audit_column VARCHAR2, --表中的某一列,可以只记录对表中某一列的操作.如果不指定表示审计所有的列 *
handler_schema VARCHAR2, --是下面的handler_module的拥有者,其实也只能是创建policy的用户,而上面的object_schema可以是任意用户 *
handler_module VARCHAR2,--可以是一个一个存储过程或函数,但监测到任何一条符合条件的操作时执行它. *
enable BOOLEAN, --true 或false表示policy是开启或关闭状态,如果是false表示不进行审计 *
statement_types VARCHAR2, --表示哪些操作将被审计,可以填上select,insert,update,delete中的一个或几个 *
audit_trail BINARY_INTEGER IN DEFAULT,--有参数db,xml表示审计到的信息保存到数据库中或是以xml文件形式保存到磁盘上 *
audit_column_opts BINARY_INTEGER IN DEFAULT); --和audit_conlumn配合使用,any_columns,all_columns两个选项 *
*************************************************************************************************************************************************************
select * from emp;
select ename from emp;
--删除审计
EXEC dbms_fga.drop_policy ( -
object_schema => 'scott', -
object_name => 'emp', -
policy_name => 'audit_emps_salary');
--启用审计
begin
dbms_fga.enable_policy (
object_schema => 'scott',
object_name => 'emp',
policy_name => 'audit_emps_salary' );
end;
/
--禁用审计
begin
dbms_fga.disable_policy (
object_schema => 'scott',
object_name => 'emp',
policy_name => 'audit_emps_salary' );
end;
/
----fga相关的数据字典-------------------
DBA_FGA_AUDIT_TRAIL --查看审计记录
ALL_AUDIT_POLICIES
DBA_AUDIT_POLICIES
USER_AUDIT_POLICIES
- oracle 细颗粒审计FGA
- Oracle FGA细粒度审计
- 利用Oracle FGA实现审计
- FGA审计
- Oracle 细粒度审计(FGA)初步
- Oracle fga审计有这几个特性
- Oracle FGA审计记录的清理步骤
- Oracle FGA审计记录的清理步骤
- Oracle FGA(Fine-Grained Audit)细粒度审计的用法
- Oracle 细粒度审计(FGA)详解及应用示例
- Oracle FGA审计记录的清理步骤 转载
- 细粒度审计 FGA
- 67、细粒度审计 FGA
- Oracle FGA
- Oracle FGA
- Oracle 细粒度审计(FGA)之DBMS_FGA包的实验案例一则
- Oracle Audit & FGA
- Oracle FGA
- VC多线程编程
- 【LeetCode】Pascal's Triangle II (杨辉三角)
- KMP算法详解(转)
- 【Cocos2d-x】Cocos2d-x参考案例源码解析之一:Cocos2dx各个文件说明
- 并查集
- oracle 细颗粒审计FGA
- poj 2406 Power Strings ( fail 数组求周期)
- 报数游戏
- 定时器/计数器
- CSS写表格
- Visual Studio程序员箴言(奋斗的小鸟)_PDF 电子书
- 关于如何成为一个iOS开发者
- cubieboard 用户 密码 root
- 网络子系统46_ip协议数据帧的转发