1 显示所有dbms_fga过程:
desc dbms_fga
2 添加审计
begin
dbms_fga.add_policy(
object_schema=>'HR',
object_name=>'EMPLOYEES',
policy_name=>'AUDI_SAL_EMP ',
audit_condition=>'salary is not null and commission_pct is not null',
audit_column=>'salary,commission_pct',
enable=>true,
statement_types=>'select');
end;
3 删除审计
begin
DBMS_FGA.DROP_POLICY (
object_schema=>'HR',
object_name=>'employees',
policy_name=>'audi_sal_emp');
end;
4 查看审计记录
select timestamp,
db_user,os_user,object_schema,object_name,sql_text from
dba_fga_audit_trail
;
数据字典视图:
DBA_FGA_AUDIT_TRAI
L
视图中重要的列
它记录细粒度的访问信息。其中显示了审计事件的时间标记、查询者的数据库用户 ID、操作系统用户 ID、查询中所使用表的名称和所有者,最后还有确切的查询语句。
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 语句使用的绑定变量(如果存在)
|
5 列出所有审计策略
数据字典视图:
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
|
处理器模块的过程名称(如果存在)
|