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 |
处理器模块的过程名称(如果存在) |