现实中的细粒度审计(2)
现实中的细粒度审计(2) 现实中的细粒度审计(2)
管理 FGA 策略
begindbms_fga.drop_policy (object_schema => 'BANK',object_name => 'ACCOUNTS',policy_name => 'ACCOUNTS_ACCESS' );end;
begindbms_fga.enable_policy (object_schema => 'BANK',object_name => 'ACCOUNTS',policy_name => 'ACCOUNTS_ACCESS',enable => FALSE );end;
enableTRUE。
处理器模块
SELECTSELECT
handler_schema
handler_module
handler_module package.procedure
FGA 数据字典视图
表 2 包含该视图中一些重要列的简短描述。
表 3 包含该视图中重要列的简短描述。
视图和 FGA
create view vw_accounts as select * from accounts;
select * from vw_accounts;
select object_name, sql_text from dba_fga_audit_trail;OBJECT_NAME SQL_TEXT----------- -------------------------------------------------ACCOUNTS select * from vw_accounts
的实际语句,而这正是您希望了解的。
阅读有关 DBMS_FGA 程序包的更多信息
访问 Oracle 数据库主页
访问 Oracle 平台安全性主页
dbms_fga.add_policyobject_name
其它用途
SELECT
结论
g 中的新特性,这些特性使 FGA 的功能极为强大,适用于所有类型的审计情况。
(arup@proligence.com) 是 IntelliClaim 的首席数据库设计人员,该公司位于 Connecticut 的 Norwalk,提供对卫生保健保险索赔管理高度安全和基于规则的优化。他是 2003 年度 Oracle DBA 奖的获得者,并与他人合作编著了即将出版的 Oracle 隐私安全性审计
SQL 语句
审计状态
select balance from accounts;
进行审计。用户选择了在添加策略时所指定的审计列 BALANCE。
select * from accounts;
进行审计。即使用户没有明确指定列 BALANCE,* 也隐含地选择了它。
select cust_id from accounts where balance < 10000;
进行审计。即使用户没有明确指定列 BALANCE,where 子句也隐含地选择了它。
select cust_id from accounts;
不进行审计。用户没有选择列 BALANCE。
select count(*) from accounts;
不进行审计。用户没有明确或隐含地选择列 BALANCE。
表 2:数据字典视图 DBA_AUDIT_POLICIES 中重要的列 OBJECT_SCHEMA
对其定义了 FGA 策略的表或视图的所有者
OBJECT_NAME
表或视图的名称
POLICY_NAME
策略的名称 — 例如,ACCOUNTS_ACCESS
POLICY_TEXT
在添加策略时指定的审计条件 — 例如,BALANCE >= 11000
POLICY_COLUMN
审计列 — 例如,BALANCE
ENABLED
如果启用则为 YES,否则为 NO PF_SCHEMA
拥有策略处理器模块的模式(如果存在)
PF_PACKAGE
处理器模块的程序包名称(如果存在)
PF_FUNCTION
处理器模块的过程名称(如果存在)
表 3:DBA_FGA_AUDIT_TRAIL 视图中重要的列 SESSION_ID
审计会话标识符;与 V$SESSION 视图中的会话标识符不同
TIMESTAMP
审计记录生成时的时间标记
DB_USER
发出查询的数据库用户
OS_USER
操作系统用户
USERHOST
用户连接的机器的主机名
CLIENT_ID
客户标识符(如果由对打包过程 dbms_session.set_identifier 的调用所设置)
EXT_NAME
外部认证的客户名称,如 LDAP 用户
OBJECT_SCHEMA
对该表的访问触发了审计的表所有者
OBJECT_NAME
对该表的 SELECT 操作触发了审计的表名称
POLICY_NAME
触发审计的策略名称(如果对表定义了多个策略,则每个策略将插入一条记录。在此情况下,该列显示哪些行是由哪个策略插入的。)
SCN
记录了审计的 Oracle 系统更改号
SQL_TEXT
由用户提交的 SQL 语句
SQL_BIND
由 SQL 语句使用的绑定变量(如果存在)