数据库审计

129 篇文章 7 订阅

1 审计(Audit)

Oracle使用大量不同的审计方法来监控使用何种权限,以及访问哪些对象。审计不会防止使用这些权限,但可以提供有用的信息,用于揭示权限的滥用和误用。
审计功能可以对用户所执行的数据库活动的跟踪记录,便于事后监督、检查。

1.1 审计类型

  • 语句审计
    按照语句类型审计SQL语句,而不论访问何种特定的模式对象。也可以在数据库中指定一个或多个用户,针对特定的语句审计这些用户
  • 权限审计
    审计系统权限,例如CREATE TABLE或ALTER INDEX。和语句审计一样,权限审计可以指定一个或多个特定的用户作为审计的目标
  • 模式对象审计
    审计特定模式对象上运行的特定语句(例如,DEPARTMENTS表上的UPDATE语句)。模式对象审计总是应用于数据库中的所有用户
  • 细粒度的审计
    根据访问对象的内容来审计表访问和权限。使用程序包DBMS_FGA来建立特定表上的策略

1.2 审计参数

查看相关参数

SQL> show parameter audit

NAME                         TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest               string      /u01/app/oracle/admin/racpdb/adump
audit_sys_operations          boolean     FALSE
audit_syslog_level            string
audit_trail                   string      NONE

1.audit_trail

  • DB/TRUE
    启用审计,并且把审计结果存放在数据库的SYS.AUD$表中,审计的结果只有连接信息
  • OS
    启用审计,并把审计结果存放在操作系统的审计信息中,文件名由audit_file_dest参数指定
  • DB_EXTENDED
    启用审计,把审计结果存放在数据库SYS.AUD$表中,并在CLOB列的SQLBIND和SQLTEXT字段记录额外的信息,除了连接信息还包含了当时执行的具体语句;
  • XML
    启用审计,以XML格式写所有审计记录;
  • EXTENDED
    启用审计,在审计跟踪中记录所有列,包括SQLTEXT和SQLBIND值
  • NONE/FALSE
    禁用审计,是默认值

2.audit_sys_operations
默认为false,当设置为true时,所有sys用户(包括以sysdba,sysoper身份登录的用户)的操作都会被记录,audit trail不会写在aud$表中,这个很好理解,如果数据库还未启动aud$不可用,那么像conn /as sysdba这样的连接信息,只能记录在其它地方。如果是windows平台,audti trail会记录在windows的事件管理中,如果是linux/unix平台则会记录在audit_file_dest参数指定的文件中。

3.audit_file_dest
Audit_trail=OS时的文件位置

4.audit_syslog_level
1) AUDIT_SYSLOG_LEVEL 独立于AUDIT_TRAIL, 当设置了AUDIT_SYSLOG_LEVEL而AUDIT_TRAIL为默认值 NONE时, CONNECT,STARTUP,与SHUTDOWN信息始终由SYSLOG记录。
2)同时设置AUDIT_SYSLOG_LEVEL与AUDIT_SYS_OPERATIONS=TURE 会将SYSDBA 或SYSOPER权限执行的任何操作通过SYSLOG记录,即便AUDIT_TRAIL=NONE
3)仅特定的组件与级别组合可正常使用。 不适用的组合会引起”ORA-32028:Syslog facility or level not recognized” 错误,可能导致数据库无法启动。
Oracle 审计参数AUDIT_SYSLOG_LEVEL介绍

1.4 开启审计功能

  • 修改审计参数AUDIT_TRAIL:
alter system set AUDIT_TRAIL=DB scope=spfile;
  • 重启数据库
    由于参数AUDIT_TRAIL不是动态的,需要关闭数据库重启生效。

1.5 审计信息存放位置

1.5.1 审计记录信息

审计记录信息存储在system表空间中的SYS.AUD$数据字典表;
或操作系统默认位置ORACLE_BASE/admin/ORACLE_SID/adump/

[oracle@rac1 adump]$ more racpdb1_ora_79622_20190531092209500074143795.aud
Audit file /u01/app/oracle/admin/racpdb/adump/racpdb1_ora_79622_20190531092209500074143
795.aud
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1
System name:    Linux
Node name:    rac1
Release:    2.6.32-754.el6.x86_64
Version:    #1 SMP Tue Jun 19 21:26:04 UTC 2018
Machine:    x86_64
Instance name: racpdb1
Redo thread mounted by this instance: 1
Oracle process number: 40
Unix process pid: 79622, image: oracle@rac1 (TNS V1-V3)
Fri May 31 09:22:09 2019 +08:00
LENGTH : '160'
ACTION :[7] 'CONNECT'
DATABASE USER:[1] '/'
PRIVILEGE :[6] 'SYSDBA'
CLIENT USER:[6] 'oracle'
CLIENT TERMINAL:[5] 'pts/4'
STATUS:[1] '0'
DBID:[10] '1817212596'
[oracle@rac1 adump]$ pwd
/u01/app/oracle/admin/racpdb/adump

Oracle 11G以后,数据库默认是开启审计功能的,因此有时候我们忘记了关闭该功能导致SYSTEM表空间爆满,但由于关闭审计功能需要重启数据库,此类操作生产环境下是不允许的,因此我们需要找出哪类审计产生的较多,然后单独的进行关闭;
我们可以通过如下方法查找:如果发现AUD$这个表比较大了,检查下是哪种审计占的空间:

SQL>SQL>  select action_name,count(*) from dba_audit_trail group by action_name;

ACTION_NAME		       COUNT(*)
---------------------------- ----------
CREATE INDEX			      1
LOGOFF BY CLEANUP		      1
LOGON				      1
INSERT				      3

一般是LOGON和LOGOFF类型的审计最多。

1.5.2 取消审计

取消此类审计:

noaudit session whenever successful;

一般来说,如果空间不是占的特别多,此类审计还是保留为好。
可以取消对一些登录特别频繁的用户的审计(比如DBSNMP用户)

noaudit session by SCOTT;

关闭审计后,对表sys.aud$进行清理

select * from  sys.aud$;
truncate table selsys.aud$;
1.5.3 删除审计日志

当已形成很对日志时,可删除里面的记录,目前是直接删除,未对数据库造成影响。

  • 查询目前的日志信息:
select * from SYS.AUD$;
  • 删除已有的审计信息:
delete SYS.AUD$;
  • 快速删除表信息:
truncate table  SYS.AUD$;

2 审计分类和用法

2.1 语句审计

  • 语法
AUDIT sql_statement_clause [BY user_name] | [BY [SESSION | ACCESS]
WHENEVER [NOT] SUCCESSFUL]

参数说明
sql_statement_clause : SQL语句或选项;
BY ACCESS : 存取方式,每条语句被执行一次都要审计,不管语句是否相同;
BY SESSION : 会话方式,相同的语句只被审计一次,这也是系统默认方式;
WHENEVER SUCCESSFUL : 表示只对成功语句进行审计;
WHENEVER NOT SUCCESSFUL : 表示只对不成功语句进行审计。

  • 包括在ALL类别中的可审计语句
语句选项SQL操作
ALTER SYSTEM所有ALTER SYSTEM选项,例如,动态改变实例参数,切换到下一个日志文件组,以及终止用户会话
CLUSTERCREATE、ALTER、DROP或TRUNCATE集群
CONTEXTCREATE CONTEXT或DROP CONTEXT
DATABASE LINKCREATE或DROP数据库链接
DIMENSIONCREATE、ALTER或DROP维数
DIRECTORYCREATE或DROP目录
INDEXCREATE、ALTER或DROP索引
MATERIALIZED VIEWCREATE、ALTER或DROP物化视图
NOT EXISTS由于不存在的引用对象而造成的SQL语句的失败
PROCEDURECREATE或DROP FUNCTION、LIBRARY、PACKAGE、PACKAGE BODY或PROCEDURE
PROFILECREATE、ALTER或DROP配置文件
PUBLIC DATABASE LINKCREATE或DROP公有数据库链接
PUBLIC SYNONYMCREATE或DROP公有同义词
ROLECREATE、ALTER、DROP或SET角色
ROLLBACK SEGMENTCREATE、ALTER或DROP回滚段
SEQUENCECREATE或DROP序列
SESSION登录和退出
SYNONYMCREATE或DROP同义词
SYSTEM AUDIT系统权限的AUDIT或NOAUDIT
SYSTEM GRANTGRANT或REVOKE系统权限和角色
TABLECREATE、DROP或TRUNCATE表
TABLESPACECREATE、ALTER或DROP表空间
TRIGGERCREATE、ALTER(启用/禁用)、DROP触发器;具有ENABLE ALL TRIGGERS或DISABLE ALL TRIGGERS的ALTER TABLE
TYPECREATE、ALTER和DROP类型以及类型主体
USERCREATE、ALTER或DROP用户
VIEWCREATE或DROP视图
  • 显式指定的语句类型
语句选项SQL 操 作
ALTER SEQUENCE任何ALTER SEQUENCE命令
ALTER TABLE任何ALTER TABLE命令
COMMENT TABLE添加注释到表、视图、物化视图或它们中的任何列
DELETE TABLE删除表或视图中的行
EXECUTE PROCEDURE执行程序包中的过程、函数或任何变量或游标
GRANT DIRECTORYGRANT或REVOKE DIRECTORY对象上的权限
GRANT PROCEDUREGRANT或REVOKE过程、函数或程序包上的权限
GRANT SEQUENCEGRANT或REVOKE序列上的权限
GRANT TABLEGRANT或REVOKE表、视图或物化视图上的权限
GRANT TYPEGRANT或REVOKE TYPE上的权限
INSERT TABLEINSERT INTO表或视图
LOCK TABLE表或视图上的LOCK TABLE命令
SELECT SEQUENCE引用序列的CURRVAL或NEXTVAL的任何命令
SELECT TABLESELECT FROM表、视图或物化视图
UPDATE TABLE在表或视图上执行UPDATE

举例

  • 审计用户对对象的操作:
audit table by scott;
  • 审计用户执行的SQL语句:
audit create table by scott;
audit insert table by scott; 		# 审计insert into表或视图;
audit delete table by scott;  		# 审计删除表或视图中的行;
  • 指定审计方式:
audit delete table by scott by access;  	# 存取方式,每条语句执行一次都要审计;
  • 审计成功与不成功的会话:
audit session by scott whenever not successful;  	# 只对不成功语句进行审计;
  • 了解哪些用户进行了审计,可查询数据字典视图DBA_STMT_AUDIT_OPTS
SQL> Audit table by scott;

Audit succeeded.

SQL> Audit insert table by scott;

Audit succeeded.

SQL> Audit delete table by scott;

Audit succeeded.

SQL> audit delete table by scott by access;

Audit succeeded.

SQL> select * from dba_stmt_audit_opts where user_name='SCOTT';

USER_NAME               PROXY_NAME
------------------------------ ------------------------------
AUDIT_OPTION                 SUCCESS    FAILURE
---------------------------------------- ---------- ----------
SCOTT
DELETE TABLE                 BY ACCESS  BY ACCESS

SCOTT
INSERT TABLE                 BY SESSION BY SESSION

SCOTT
TABLE                     BY ACCESS  BY ACCESS

在这里插入图片描述

  • 对test用户的创建索引命令进行审计
    1.创建用户test
SQL> create tablespace tbs_test datafile '+DATA/racpdb/datafile/tbs_test.001.dbf' size 10M autoextend on;

SQL> create user test identified by test default tablespace tbs_test;

SQL> create table emp as select  * from scott.emp;
SQL> create table dept as select  * from scott.dept;

SQL> select * from tab;

TNAME                   TABTYPE    CLUSTERID
------------------------------ ------- ----------
DEPT                   TABLE
EMP                   TABLE

2.审计用户test创建的索引

SQL> audit index by test;

Audit succeeded.

3.test用户在emp表上创建了一个索引

SQL> create index emp_empno_idx on emp(empno,ename);

Index created.

4.检查数据字典视图DBA_AUDIT_TRAIL中的审计跟踪,可以看到test用户在6月5日在emp表上创建了索引

SQL> select username, to_char(timestamp,'MM/DD/YY HH24:MI') Timestamp,obj_name, action_name, sql_text from dba_audit_trail where username = 'TEST';

USERNAME   TIMESTAMP      OBJ_NAME           ACTION_NAME     SQL_TEXT
---------- -------------- -------------------- --------------- --------------------
TEST       06/05/19 16:25 EMP_EMPNO_IDX        CREATE INDEX    create index emp_empno_idx on emp(empno,ename)

从Oracle Database 11g开始,只有在初始参数AUDIT_TRAIL被设置为DB_EXTENDED时,才填充DBA_AUDIT_TRAIL中的列SQL_TEXT和SQL_BIND。默认情况下,AUDIT_TRAIL的值是DB。

  • 停止语句审计:
noaudit alter table by scott;

在这里插入图片描述

2.2 权限审计

审计系统权限具有与语句审计相同的基本语法,但审计系统权限是在sql_statement_clause中,而不是在语句中,指定系统权限。
例如,可能希望将ALTER TABLESPACE权限授予所有的DBA,但希望在发生这种情况时生成审计记录。启用对这种权限的审计的命令看起来类似于语句审计:

  • 语法:
AUDIT privilege [BY user_name] | [BY [SESSION | ACCESS]
WHENEVER [NOT] SUCCESSFUL]
SQL> show user
USER is "SYS"
SQL> audit alter tablespace by access whenever successful;

Audit succeeded.

每次成功使用ALTER TABLESPACE权限时,都会将一行内容添加到SYS.AUD$
使用SYSDBA和SYSOPER权限或者以SYS用户连接到数据库的系统管理员可以利用特殊的审计。为了启用这种额外的审计级别,可以设置初始参数AUDIT_SYS_OPERATIONS为TRUE。这种审计记录发送到与操作系统审计记录相同的位置。因此,这个位置是和操作系统相关的。当使用其中一种权限时执行的所有SQL语句,以及作为用户SYS执行的任何SQL语句,都会发送到操作系统审计位置。

2.3 对象审计

审计对各种模式对象的访问看起来类似于语句审计和权限审计

  • 语法:
AUDIT schema_object_clause ON schema
[BY user_name] | [BY [SESSION | ACCESS]
WHENEVER [NOT] SUCCESSFUL]

schema_object_clause指定对象访问的类型以及访问的对象。可以审计特定对象上14种不同的操作类型,下表中列出了这些操作。

对象选项说明
ALTER改变表、序列或物化视图
AUDIT审计任何对象上的命令
COMMENT添加注释到表、视图或物化视图
DELETE从表、视图或物化视图中删除行
EXECUTE执行过程、函数或程序包
FLASHBACK执行表或视图上的闪回操作
GRANT授予任何类型对象上的权限
INDEX创建表或物化视图上的索引
INSERT将行插入表、视图或物化视图中
LOCK锁定表、视图或物化视图
READ对DIRECTORY对象的内容执行读操作
RENAME重命名表、视图或过程
SELECT从表、视图、序列或物化视图中选择行
UPDATE更新表、视图或物化视图

举例

  • 审计TEST.EMP表上的所有insert命令,而不管谁正在进行更新,则每次该动作发生时,都可以使用如下所示的audit命令
    1.对test的emp表的insert进行审计
SQL> audit insert on test.emp by access whenever successful;

Audit succeeded.

2.向表中添加新行

SQL> insert into emp(empno,ename,job,mgr,sal,comm,deptno)
  2  values(1000,'XIAOMING','CLERK',7902,1200,100,20);

1 row created.

3.查看DBA_AUDIT_TRAIL视图,可以看到TEST用户新添的insert命令:

SQL> select username, to_char(timestamp,'MM/DD/YY HH24:MI') Timestamp,owner,obj_name, action_name, sql_text fhere username = 'TEST';

USERN TIMESTAMP      OWNER OBJ_NAME   ACTION_NAME       SQL_TEXT
----- -------------- ----- ---------- -------------------- --------------------------------------------------
TEST  06/05/19 16:25 TEST  EMP_EMPNO_ CREATE INDEX       create index emp_empno_idx on emp(empno,ename)
               IDX

TEST  06/06/19 08:34              LOGON
TEST  06/05/19 16:35              LOGOFF BY CLEANUP
TEST  06/06/19 08:39 TEST  EMP          INSERT           insert into emp(empno,ename,job,mgr,sal,comm,deptno) values(1000,'XIAOMING','CLERK',7902,1200,100,20)

2.4 细粒度审计(FGA)

细粒度审计是由DBMS_FGA的PL/SQL程序实现的
从Oracle9i开始,通过引入细粒度的对象审计,或称为FGA,审计变得更为关注某个方面,并且更为精确。由称为DBMS_FGA的PL/SQL程序包实现FGA。
使用标准的审计,可以轻松发现访问了哪些对象以及由谁访问,但无法知道访问了哪些行或列。细粒度的审计可解决这个问题,它不仅为需要访问的行指定谓词(或where子句),还指定了表中访问的列。通过只在访问某些行和列时审计对表的访问,可以极大地减少审计表条目的数量。
程序包DBMS_FGA具有4个过程:

  • ADD_POLICY
    添加使用谓词和审计列的审计策略
  • DROP_POLICY
    删除审计策略
  • DISABLE_POLICY
    禁用审计策略,但保留与表或视图关联的策略
  • ENABLE_POLICY
    启用策略

从DBMS_FGA的结构很容易看出,DBMS_FGA包主要包括ADD_POLICY,ENABLE_POLICY,DISABLE_POLICY,和DROP_POLICY这4个存储过程。

SQL> desc dbms_fga
PROCEDURE ADD_POLICY
Argument Name            Type            In/Out Default?
------------------------------ ----------------------- ------ --------
OBJECT_SCHEMA            VARCHAR2        IN     DEFAULT
OBJECT_NAME            VARCHAR2        IN
POLICY_NAME            VARCHAR2        IN
AUDIT_CONDITION        VARCHAR2        IN     DEFAULT
AUDIT_COLUMN            VARCHAR2        IN     DEFAULT
HANDLER_SCHEMA         VARCHAR2        IN     DEFAULT
HANDLER_MODULE         VARCHAR2        IN     DEFAULT
ENABLE             BOOLEAN         IN     DEFAULT
STATEMENT_TYPES        VARCHAR2        IN     DEFAULT
AUDIT_TRAIL            BINARY_INTEGER        IN     DEFAULT
AUDIT_COLUMN_OPTS        BINARY_INTEGER        IN     DEFAULT
POLICY_OWNER            VARCHAR2        IN     DEFAULT
PROCEDURE DISABLE_POLICY
Argument Name            Type            In/Out Default?
------------------------------ ----------------------- ------ --------
OBJECT_SCHEMA            VARCHAR2        IN     DEFAULT
OBJECT_NAME            VARCHAR2        IN
POLICY_NAME            VARCHAR2        IN
PROCEDURE DROP_POLICY
Argument Name            Type            In/Out Default?
------------------------------ ----------------------- ------ --------
OBJECT_SCHEMA            VARCHAR2        IN     DEFAULT
OBJECT_NAME            VARCHAR2        IN
POLICY_NAME            VARCHAR2        IN
PROCEDURE ENABLE_POLICY
Argument Name            Type            In/Out Default?
------------------------------ ----------------------- ------ --------
OBJECT_SCHEMA            VARCHAR2        IN     DEFAULT
OBJECT_NAME            VARCHAR2        IN
POLICY_NAME            VARCHAR2        IN
ENABLE             BOOLEAN         IN     DEFAULT

其中ADD_POLICY是最常用也是最DBMS_FGA包中最复杂的过程,参考下面的内容顺序ADD_POLICY存储过程中参数的含义

ParameterDescriptionDefault Value
object_schemaThe schema of the object to be audited. (If NULL, the current log-on user schema is assumed.) 要审计的对象的架构。(如果为NULL,则假定当前登录用户模式。NULL
object_nameThe name of the object to be audited.要审计的对象的名称-
policy_nameThe unique name of the policy.审计策略名称-
audit_conditionA condition in a row that indicates a monitoring condition. NULL is allowed and acts as TRUE. 行中指示监视条件的条件。允许NULL,并充当true。NULL
audit_columnThe columns to be checked for access. These can include hidden columns. The default, NULL, causes audit if any column is accessed or affected. 要检查的访问列。这些可以包括隐藏的列。如果访问或影响任何列,则默认的NULL将导致审计。NULL
handler_schemaThe schema that contains the event handler. The default, NULL, causes the current schema to be used. 包含事件处理程序的架构。默认的NULL将导致使用当前架构。NULL
handler_moduleThe function name of the event handler; includes the package name if necessary. This function is invoked only after the first row that matches the audit condition in the query is processed. If the procedure fails with an exception, the user SQL statement will fail as well. 事件处理程序的函数名;必要时包括包名。只有在处理与查询中的审计条件匹配的第一行之后才调用此函数。如果过程在异常情况下失败,用户SQL语句也将失败。NULL
enableEnables the policy if TRUE, which is the default. 启用策略(如果为true),这是默认的。TRUE
statement_typesThe SQL statement types to which this policy is applicable: INSERT, UPDATE, DELETE, or SELECT only. 此策略适用的SQL语句类型:插入、更新、删除或只选择。SELECT
audit_trailDestination (DB or XML) of fine grained audit records. Also specifies whether to populate LSQLTEXT and LSQLBIND in fga_log$. 细粒度审计记录的目标(DB或XML)。还指定是否在FGA_LOG$中填充LSQLTEXT和LSQLBIND。<<<< 要想捕获SQL语句和绑定变量值需要设置DBMS_FGA.EXTENDED,默认值即包含该设置,参数设置示例请参考下面的使用注意事项。DB_EXTENDED
audit_column_optsEstablishes whether a statement is audited when the query references anycolumn specified in the audit_column parameter or only when all such columns are referenced. 确定在查询引用审核_列参数中指定的任何列时,还是仅在引用所有此类列时,是否对语句进行审计。 <<<< 值有DBMS_FGA.ALL_COLUMNS和DBMS_FGA.ANY_COLUMNS,表示audit_column设置中是满足所有字段捕获还是满足一个字段捕获。ANY_COLUMNS

举例
建立一个FGA策略,用于审计任何用户对SALARY列的访问
1.建立FGA策略

SQL> begin
  2  dbms_fga.add_policy(
  3  object_schema =>   'SCOTT',
  4  object_name =>     'EMP',
  5  policy_name =>     'SAL_SELECT_AUDIT',
  6  audit_column =>    'SAL'
  7  );
  8  end;
  9  /

PL/SQL procedure successfully completed.

2.用TEST用户查看scott用户emp表中经理的工资

SQL> show user
USER is "TEST"
SQL> select ename,job,hiredate from scott.emp where job='MANAGER';

ENAME       JOB         HIREDATE
---------- --------- -------------------
JONES       MANAGER   1981-04-02 00:00:00
BLAKE       MANAGER   1981-05-01 00:00:00
CLARK       MANAGER   1981-06-09 00:00:00
SQL> select ename,job,sal from scott.emp where job='MANAGER';

ENAME       JOB            SAL
---------- --------- ----------
JONES       MANAGER       2975
BLAKE       MANAGER       2850
CLARK       MANAGER       2450

3.第一个查询访问经理信息,但没有访问SALARY列。第二个查询与第一个查询相同,但是访问了SALARY列,因此触发了FGA策略,从而在审计跟踪中生成了一行:

SQL> select to_char(timestamp,'mm/dd/yy hh24:mi') timestamp,
2 object_schema, object_name, policy_name, statement_type
3 from dba_fga_audit_trail
4 where db_user = 'TEST'; 

TIMESTAMP      OBJECT_SCH OBJECT_NAM POLICY_NAME            STATEME
-------------- ---------- ---------- ------------------------------ -------
06/06/19 09:35 SCOTT      EMP         SAL_SELECT_AUDIT            SELECT
  • 删除细粒度策略
SQL> begin
  2  dbms_fga.drop_policy(
  3  object_schema =>   'SCOTT',
  4  object_name=>'EMP',
  5  policy_name=>'SAL_SELECT_AUDIT'
  6  );
  7  end;
  8  /
  • 停用审计策略
begin
dbms_fga.enable_policy (
object_schema => 'SCOTT',
object_name => 'EMP',
policy_name => 'SAL_SELECT_AUDIT',
enable => FALSE
);
end;
/

要重新启用它,可使用同一函数,将参数 enable 设置为 TRUE即可。

3 与审计相关的数据字典视图

3.1 常用数据字典视图

数据字典视图说明
AUDIT_ACTIONS包含审计跟踪动作类型代码的描述,例如INSERT、DROP VIEW、DELETE、LOGON和LOCK
DBA_AUDIT_OBJECT与数据库中对象相关的审计跟踪记录
DBA_AUDIT_POLICIES数据库中的细粒度审计策略信息
DBA_AUDIT_SESSION与CONNECT和DISCONNECT相关的所有审计跟踪记录
DBA_AUDIT_STATEMENT与GRANT、REVOKE、AUDIT、NOAUDIT和ALTER SYSTEM命令相关的审计跟踪条目
DBA_AUDIT_TRAIL包含标准审计跟踪条目。
USER_AUDIT_TRAILUSER_TRAIL_AUDIT只包含已连接用户的审计行
DBA_FGA_AUDIT_TRAIL细粒度审计策略的审计跟踪条目, 可以查看到审计的SQL语句和绑定变量。
DBA_COMMON_AUDIT_TRAIL将标准的审计行和细粒度的审计行结合在一个视图中, 包含V$XML_AUDIT_TRAIL动态性能视图的内容,是标准和细粒度审计记录。
DBA_OBJ_AUDIT_OPTS对数据库对象生效的审计选项
DBA_PRIV_AUDIT_OPTS对系统权限生效的审计选项
DBA_STMT_AUDIT_OPTS对语句生效的审计选项

3.2 常用的初始化参数

  • SYS.FGA_LOG$
    如果audit_trail参数包含DB,那么审计记录会被记录在FGA_LOG$表中。
  • AUDIT_FILE_DEST初始化参数
    设置审计操作系统文件的存放位置。
  • V$XML_AUDIT_TRAIL
    如果audit_trail参数包含XML,那么审计记录会记录在AUDIT_FILE_DEST初始化参数指定的目的地下的XML文件中,Oracle会读取这些XML文件,生成V$XML_AUDIT_TRAIL动态性能视图,方便DBA查看审计详细信息。
  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值