Oracle数据库审计

Oracle数据库审计功能的使用 oracle审计功能查看审计功能是否开启开启审计功能:关闭审计功能:审计功能相关视图审计功能的使用数据库打开的语句审计功能数据库打开的权限审计功能数据库审计总体情况数据库语句审计数据库对象审计数据库会话情况审计 查看审计功能是否开启 show parameter audit; audit_sys_operations:默认为false,当设置为true时,所有sys用户(包括以sysdba,sysoper身份登录的用户)的操作都会被记录,audit trail不会写在aud$表中,这个很好理解,如果数 阅读详情

Oracle数据库审计

  Oracle使用大量不同的审计方法来监控使用何种权限,以及访问哪些对象。审计不会防止使用这些权限,但可以提供有用的信息,用于揭示权限的滥用和误用。


下表中总结了Oracle数据库中不同类型的审计:

 

审 计 类 型

说    明

语句审计

按照语句类型审计SQL语句,而不论访问何种特定的模式对象。也可以在数据库中指定一个或多个用户,针对特定的语句审计这些用户

权限审计

审计系统权限,例如CREATE TABLE或ALTER INDEX。和语句审计一样,权限审计可以指定一个或多个特定的用户作为审计的目标

模式对象审计

审计特定模式对象上运行的特定语句(例如,DEPARTMENTS表上的UPDATE语句)。模式对象审计总是应用于数据库中的所有用户

细粒度的审计

根据访问对象的内容来审计表访问和权限。使用程序包DBMS_FGA来建立特定表上的策略

 

下面几节介绍DBA如何管理系统和对象权限使用的审计。当需要一定的粒度时,DBA可以使用细粒度的审计来监控对表中某些行或列的访问,而不仅仅是是否访问表。


和审计相关的主要参数:

SQL>show parameter audit

audit_file_dest
audit_sys_operations
audit_trail


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

audit_trail:
None:是默认值,不做审计;
DB:将audit trail 记录在数据库的审计相关表中,如aud$,审计的结果只有连接信息;
DB,Extended:这样审计结果里面除了连接信息还包含了当时执行的具体语句;
OS:将audit trail 记录在操作系统文件中,文件名由audit_file_dest参数指定;
XML:10g里新增的。


10g Values:

  • none

    Disables database auditing.

  • os

    Enables database auditing and directs all audit records to the operating system's audit trail.

  • db

    Enables database auditing and directs all audit records to the database audit trail (the SYS.AUD$ table).

  • db,extended

    Enables database auditing and directs all audit records to the database audit trail (the SYS.AUD$ table). In addition, populates the SQLBIND and SQLTEXT CLOB columns of the SYS.AUD$ table.

  • xml

    Enables database auditing and writes all audit records to XML format OS files.

  • xml,extended

    Enables database auditing and prints all columns of the audit trail, including SqlText and SqlBind values.


注:

参数AUDIT_TRAIL不是动态的,为了使AUDIT_TRAIL参数中的改动生效,必须关闭数据库并重新启动。在对SYS.AUD$表进行审计时,应该注意监控该表的大小,以避免影响SYS表空间中其他对象的空间需求。推荐周期性归档SYS.AUD$中的行,并且截取该表。Oracle提供了角色 DELETE_CATALOG_ROLE,和批处理作业中的特殊账户一起使用,用于归档和截取审计表。

audit_file_dest:Audit_trail=OS时 文件位置


1.语句审计


所有类型的审计都使用audit命令来打开审计,使用noaudit命令来关闭审计。对于语句审计,audit命令的格式看起来如下所示:

AUDIT sql_statement_clause BY {SESSION | ACCESS}
WHENEVER [NOT] SUCCESSFUL;

sql_statement_clause包含很多条不同的信息,例如希望审计的SQL语句类型以及审计什 么人。

此外,希望在每次动作发生时都对其进行审计(by access)或者只审计一次(by session)。默认是by session。

有时希望审计成功的动作:没有生成错误消息的语句。对于这些语句,添加whenever successful。而有时只关心使用审计语句的命令是否失败,失败原因是权限违犯、用完表空间中的空间还是语法错误。对于这些情况,使用 whenever not successful。

对于大多数类别的审计方法,如果确实希望审计所有类型的表访问或某个用户的任何权限,则可以指定all而不是单个的语句类型或对象。

表1列出了可以审计的语句类型,并且在每个类别中包含了相关语句的简要描述。如果指定all,则审计该列表中的任何语句。然而,表2中的语句类型在启用审计时不属于all类别;必须在audit命令中显式地指定它们。


表1 包括在ALL类别中的可审计语句

 

语 句 选 项

SQL操作

ALTER SYSTEM

所有ALTER SYSTEM选项,例如,动态改变实例参数,切换到下一个日志文件组,以及终止用户会话

CLUSTER

CREATE、ALTER、DROP或TRUNCATE集群

CONTEXT

CREATE CONTEXT或DROP CONTEXT

DATABASE LINK

CREATE或DROP数据库链接

DIMENSION

CREATE、ALTER或DROP维数

DIRECTORY

CREATE或DROP目录

INDEX

CREATE、ALTER或DROP索引

MATERIALIZED VIEW

CREATE、ALTER或DROP物化视图

NOT EXISTS

由于不存在的引用对象而造成的SQL语句的失败

PROCEDURE

CREATE或DROP FUNCTION、LIBRARY、PACKAGE、PACKAGE BODY或PROCEDURE

PROFILE

CREATE、ALTER或DROP配置文件

PUBLIC DATABASE LINK

CREATE或DROP公有数据库链接

PUBLIC SYNONYM

CREATE或DROP公有同义词

ROLE

CREATE、ALTER、DROP或SET角色

ROLLBACK SEGMENT

CREATE、ALTER或DROP回滚段

SEQUENCE

CREATE或DROP序列

SESSION

登录和退出

SYNONYM

CREATE或DROP同义词

SYSTEM AUDIT

系统权限的AUDIT或NOAUDIT

SYSTEM GRANT

GRANT或REVOKE系统权限和角色

TABLE

CREATE、DROP或TRUNCATE表

TABLESPACE

CREATE、ALTER或DROP表空间

TRIGGER

CREATE、ALTER(启用/禁用)、DROP触发器;具有ENABLE ALL TRIGGERS或DISABLE ALL TRIGGERS的ALTER TABLE

TYPE

CREATE、ALTER和DROP类型以及类型主体

USER

CREATE、ALTER或DROP用户

VIEW

CREATE或DROP视图

 

表2 显式指定的语句类型

 

语 句 选 项

SQL 操 作

ALTER SEQUENCE

任何ALTER SEQUENCE命令

ALTER TABLE

任何ALTER TABLE命令

COMMENT TABLE

添加注释到表、视图、物化视图或它们中的任何列

DELETE TABLE

删除表或视图中的行

EXECUTE PROCEDURE

执行程序包中的过程、函数或任何变量或游标

GRANT DIRECTORY

GRANT或REVOKE DIRECTORY对象上的权限

GRANT PROCEDURE

GRANT或REVOKE过程、函数或程序包上的权限

GRANT SEQUENCE

GRANT或REVOKE序列上的权限

GRANT TABLE

GRANT或REVOKE表、视图或物化视图上的权限

GRANT TYPE

GRANT或REVOKE TYPE上的权限

INSERT TABLE

INSERT INTO表或视图

LOCK TABLE

表或视图上的LOCK TABLE命令

SELECT SEQUENCE

引用序列的CURRVAL或NEXTVAL的任何命令

SELECT TABLE

SELECT FROM表、视图或物化视图

UPDATE TABLE

在表或视图上执行UPDATE

 

一些示例可以帮助读者更清楚地了解所有这些选项。在示例数据库中,用户KSHELTON具有HR模式和其他模式中所有表上的权限。允许 KSHELTON创建其中一些表上的索引,但如果有一些与执行计划改动相关的性能问题,则需要知道何时创建这些索引。可以使用如下命令审计 KSHELTON创建的索引:


SQL> audit index by kshelton;

Audit succeeded.

后面的某一天,KSHELTON在HR.JOBS表上创建了一个索引:

SQL> create index job_title_idx on hr.jobs(job_title);
Index created.

检查数据字典视图DBA_AUDIT_TRAIL中的审计跟踪,可以看到KSHELTON实际上在8月12日的5:15 P.M.创建了索引:

SQL> select username, to_char(timestamp,'MM/DD/YY HH24:MI') Timestamp,
2      obj_name, action_name, sql_text from dba_audit_trail
3  where username = 'KSHELTON';USERNAME   TIMESTAMP        OBJ_NAME         ACTION_NAME      SQL_TEXT
---------  --------------  --------------  --------------  ----------------
KSHELTON    08/12/07 17:15  JOB_TITLE_IDX   CREATE INDEX     create index hr.
job_title_idx on
hr.jobs(job_title)1 row selected.

注意:

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

为了关闭HR.JOBS表上KSHELTON的审计,可以使用noaudit命令,如下所示:

SQL> noaudit index by kshelton;
Noaudit succeeded.

也可能希望按常规方式审计成功的和不成功的登录,这需要两个audit命令:

SQL> audit session whenever successful;
Audit succeeded.
SQL> audit session whenever not successful;
Audit succeeded.

2.权限审计


审计系统权限具有与语句审计相同的基本语法,但审计系统权限是在sql_statement_clause中,而不是在语句中,指定系统权限。

例如,可能希望将ALTER TABLESPACE权限授予所有的DBA,但希望在发生这种情况时生成审计记录。启用对这种权限的审计的命令看起来类似于语句审计:

SQL> audit alter tablespace by access whenever successful;
Audit succeeded.

每次成功使用ALTER TABLESPACE权限时,都会将一行内容添加到SYS.AUD$。

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


3.模式对象审计


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

AUDIT schema_object_clause 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

更新表、视图或物化视图

 

如果希望审计HR.JOBS表上的所有insert和update命令,而不管谁正在进行更新,则每次该动作发生时,都可以使用如下所示的audit命令:

SQL> audit insert, update on hr.jobs by access whenever successful;
Audit successful.

用户KSHELTON决定向HR.JOBS表添加两个新行:

SQL> insert into hr.jobs (job_id, job_title, min_salary, max_salary)
2  values ('IN_CFO','Internet Chief Fun Officer', 7500, 50000);
1 row created.SQL> insert into hr.jobs (job_id, job_title, min_salary, max_salary)
2  values ('OE_VLD','Order Entry CC Validation', 5500, 20000);
1 row created.

查看DBA_AUDIT_TRAIL视图,可以看到KSHELTON会话中的两个insert命令:

USERNAME   TIMESTAMP      OWNER        OBJ_NAME   ACTION_NAME
SQL_TEXT
---------- -------------- -------- ---------- ---------------
---------------------------------------------------------------
KSHELTON   08/12/07 22:54 HR       JOBS       INSERT
insert into hr.jobs (job_id, job_title, min_salary, max_salary)
values ('IN_CFO','Internet Chief Fun Officer', 7500, 50000);
KSHELTON   08/12/07 22:53 HR       JOBS       INSERT
insert into hr.jobs (job_id, job_title, min_salary, max_salary)
values ('OE_VLD','Order Entry CC Validation', 5500, 20000);
KSHELTON   08/12/07 22:51                     LOGON

3 rows selected.

4.细粒度的审计

从Oracle9i开始,通过引入细粒度的对象审计,或称为FGA,审计变得更为关注某个方面,并且更为精确。由称为DBMS_FGA的PL/SQL程序包实现FGA。

使用标准的审计,可以轻松发现访问了哪些对象以及由谁访问,但无法知道访问了哪些行或列。细粒度的审计可解决这个问题,它不仅为需要访问的行指定谓词(或where子句),还指定了表中访问的列。通过只在访问某些行和列时审计对表的访问,可以极大地减少审计表条目的数量。

程序包DBMS_FGA具有4个过程:

 

ADD_POLICY

添加使用谓词和审计列的审计策略

DROP_POLICY

删除审计策略

DISABLE_POLICY

禁用审计策略,但保留与表或视图关联的策略

ENABLE_POLICY

启用策略

 

用户TAMARA通常每天访问HR.EMPLOYEES表,查找雇员的电子邮件地址。系统管理员怀疑TAMARA正在查看经理们的薪水信息,因此他们建立一个FGA策略,用于审计任何经理对SALARY列的任何访问:

begin
dbms_fga.add_policy(
object_schema =>   'HR',
object_name =>     'EMPLOYEES',
policy_name =>     'SAL_SELECT_AUDIT',
audit_condition => 'instr(job_id,''_MAN'') > 0',
audit_column =>    'SALARY'
);
end;

可以使用数据字典视图DBA_FGA_AUDIT_TRAIL访问细粒度审计的审计记录。如果一般需要查看标准的审计行和细粒度的审计行,则数据字典视图DBA_COMMON_AUDIT_TRAIL结合了这两种审计类型中的行。

继续看示例,用户TAMARA运行了如下两个SQL查询:

SQL> select employee_id, first_name, last_name, email from hr.employees
2     where employee_id = 114;EMPLOYEE_ID FIRST_NAME          LAST_NAME                 EMAIL
----------- ------------------ ---------------------   --------------
114    Den                   Raphaely                  DRAPHEAL1 row selected.SQL> select employee_id, first_name, last_name, salary from hr.employees
2     where employee_id = 114;EMPLOYEE_ID FIRST_NAME          LAST_NAME                     SALARY
----------- ------------------ -----------------------   ----------
114    Den                   Raphaely                       110001 row selected.

第一个查询访问经理信息,但没有访问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 = 'TAMARA';TIMESTAMP        OBJECT_SCHEMA  OBJECT_NAME     POLICY_NAME      STATEMENT_TYPE
--------------  -------------  -------------  ---------------- --------------
08/12/07 18:07  HR               EMPLOYEES      SAL_SELECT_AUDIT SELECT1 row selected.

因为在本章前面的VPD示例中建立了细粒度的访问控制来阻止对SALARY列的未授权访问,因此需要加倍检查策略函数,确保仍然正确限制了SALARY信息。细粒度的审计以及标准审计是确保首先正确建立授权策略的好方法。


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


下表包含了与审计相关的数据字典视图。

 

数据字典视图

说    明

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

细粒度审计策略的审计跟踪条目

 

 (续表)  

数据字典视图

说    明

DBA_COMMON_AUDIT_TRAIL

将标准的审计行和细粒度的审计行结合在一个视图中

DBA_OBJ_AUDIT_OPTS

对数据库对象生效的审计选项

DBA_PRIV_AUDIT_OPTS

对系统权限生效的审计选项

DBA_STMT_AUDIT_OPTS

对语句生效的审计选项

 

6.保护审计跟踪

审计跟踪自身需要受到保护,特别是在非系统用户必须访问表SYS.AUD$时。内置的角色DELETE_ANY_CATALOG是非SYS用户可以访问审计跟踪的一种方法(例如,归档和截取审计跟踪,以确保它不会影响到SYS表空间中其他对象的空间需求)。

为了建立对审计跟踪自身的审计,以SYSDBA身份连接到数据库,并运行下面的命令:

SQL> audit all on sys.aud$ by access;

Audit succeeded.


现在,所有针对表SYS.AUD$的动作,包括select、insert、update和delete,都记录在SYS.AUD$自身中。但是,您可能会问,如果某个人删除了标识对表SYS.AUD$访问的审计记录,这时会发生什么?此时将删除表中的行,但接着插入另一行,记录行的删除。因此,总是存在一些针对SYS.AUD$表的(有意的或偶然的)活动的证据。此外,如果将AUDIT_SYS _OPERATIONS设置为True,使用as sysdba、as sysoper或以SYS自身连接的任何会话将记录到操作系统审计位置中,甚至Oracle DBA可能都无法访问该位置。因此,有许多合适的安全措施,用于确保记录数据库中所有权限的活动,以及隐藏该活动的任何尝试。


7.启用增强的审计


从Oracle Database 11g开始,数据库配置助手(Database Configuration Assistant,DBCA)很容易启用默认的(增强的)审计。虽然记录审计信息有一些系统开销,但兼容性需求(例如,Sarbanes-Oxley法案中规定的兼容性需求)要求严格监控所有业务操作,包括数据库中与安全相关的操作。

可以在创建数据库时或在数据库已经创建之后使用DBCA配置默认审计。如果已经改变了很多审计设置,并想要将审计选项重置为基线值,则在数据库已创建之后使用DBCA配置默认审计就非常有用。

除将初始参数AUDIT_TRAIL的值设置为DB外,默认审计设置还审计audit role命令本身。另外,在Audited Privileges选项卡的Oracle Enterprise Manager Audit Settings页面中,可以查看默认的审计权限。


8.实例讲解

8.1、激活审计

审计相关的表安装

 

  SQLPLUS> connect / AS SYSDBA

  SQLPLUS> select * from sys.aud$;     --没有记录返回  

  SQLPLUS> select * from dba_audit_trail;   - 没有记录返回

如果做上述查询的时候发现表不存在,说明审计相关的表还没有安装,需要安装。

 

  SQLPLUS> connect / as sysdba

  SQLPLUS> @$ORACLE_HOME/rdbms/admin/cataudit.sql

审计表安装在SYSTEM表空间。所以要确保SYSTEM表空间又足够的空间存放审计信息。

   安装后要重启数据库

 

将审计相关的表移动到其他表空间

 

由于AUD$表等审计相关的表存放在SYSTEM表空间,因此为了不影响系统的性能,保护SYSTEM表空间,最好把AUD$移动到其他的表空间上。可以使用下面的语句来进行移动:

 

sql>connect / as sysdba;

sql>alter table aud$ move tablespace ;

sql>alter index I_aud1 rebuild online tablespace ;

SQL> alter table audit$ move tablespace ;

SQL> alter index i_audit rebuild online tablespace ;

SQL> alter table audit_actions move tablespace ;

SQL> alter index i_audit_actions rebuild online tablespace ;

SQL> conn /as sysdba
SQL> show parameter audit
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      /u01/app/oracle/admin/ORCL/adump
audit_sys_operations                 boolean     FALSE
audit_syslog_level                   string
audit_trail                          string      NONE

SQL> alter system set audit_sys_operations=TRUE scope=spfile;    --审计管理用户(以sysdba/sysoper角色登陆)
SQL> alter system set audit_trail=db,extended scope=spfile;
SQL> startup force;
SQL> show parameter audit
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      /u01/app/oracle/admin/ORCL/adump
audit_sys_operations                 boolean     TRUE
audit_syslog_level                   string
audit_trail                          string      DB, EXTENDED          

8.2、开始审计

SQL> conn /as sysdba
SQL> audit all on t_test;
SQL> conn u_test
SQL> select * from t_test;
SQL> insert into u_test.t_test (c2,c5) values ('test1','2');
SQL> commit;
SQL> delete from u_test.t_test;
SQL> commit;
SQL> conn /as sysdba
SQL> col DEST_NAME format a30
col OS_USERNAME format a15
col USERNAME format a15
col USERHOST format a15
col TERMINAL format a15
col OBJ_NAME format a30
col SQL_TEXT format a60
SQL> select OS_USERNAME,username,USERHOST,TERMINAL,TIMESTAMP,OWNER,obj_name,ACTION_NAME,sessionid,os_process,sql_text from dba_audit_trail;

sql> audit select table by u_test by access;
如果在命令后面添加by user则只对user的操作进行审计,如果省去by用户,则对系统中所有的用户进行审计(不包含sys用户).

例:
AUDIT DELETE ANY TABLE;    --审计删除表的操作
AUDIT DELETE ANY TABLE WHENEVER NOT SUCCESSFUL;    --只审计删除失败的情况
AUDIT DELETE ANY TABLE WHENEVER SUCCESSFUL;    --只审计删除成功的情况
AUDIT DELETE,UPDATE,INSERT ON user.table by test;    --审计test用户对表user.table的delete,update,insert操作

8.3、撤销审计
SQL> noaudit all on t_test;

9.审计语句

多层环境下的审计:appserve-应用服务器,jackson-client
AUDIT SELECT TABLE BY appserve ON BEHALF OF jackson;

审计连接或断开连接:
AUDIT SESSION;
AUDIT SESSION BY jeff, lori;    -- 指定用户

审计权限(使用该权限才能执行的操作):
AUDIT DELETE ANY TABLE BY ACCESS WHENEVER NOT SUCCESSFUL;
AUDIT DELETE ANY TABLE;
AUDIT SELECT TABLE, INSERT TABLE, DELETE TABLE, EXECUTE PROCEDURE BY ACCESS WHENEVER NOT SUCCESSFUL;

对象审计:
AUDIT DELETE ON jeff.emp;
AUDIT SELECT, INSERT, DELETE ON jward.dept BY ACCESS WHENEVER SUCCESSFUL;

取消审计:
NOAUDIT session;
NOAUDIT session BY jeff, lori;
NOAUDIT DELETE ANY TABLE;
NOAUDIT SELECT TABLE, INSERT TABLE, DELETE TABLE,EXECUTE PROCEDURE;
NOAUDIT ALL;    -- 取消所有statement审计
NOAUDIT ALL PRIVILEGES;    -- 取消所有权限审计
NOAUDIT ALL ON DEFAULT;    -- 取消所有对象审计

10.清除审计信息

DELETE FROM SYS.AUD$;
DELETE FROM SYS.AUD$ WHERE obj$name='EMP';

11.审计视图

STMT_AUDIT_OPTION_MAP    -- 审计选项类型代码
AUDIT_ACTIONS    -- action代码
ALL_DEF_AUDIT_OPTS    -- 对象创建时默认的对象审计选项
DBA_STMT_AUDIT_OPTS    -- 当前数据库系统审计选项
DBA_PRIV_AUDIT_OPTS    -- 权限审计选项
DBA_OBJ_AUDIT_OPTS    
USER_OBJ_AUDIT_OPTS    -- 对象审计选项
DBA_AUDIT_TRAIL    
USER_AUDIT_TRAIL    -- 审计记录
DBA_AUDIT_OBJECT    
USER_AUDIT_OBJECT    -- 审计对象列表
DBA_AUDIT_SESSION    
USER_AUDIT_SESSION    -- session审计
DBA_AUDIT_STATEMENT    
USER_AUDIT_STATEMENT    -- 语句审计
DBA_AUDIT_EXISTS    -- 使用BY AUDIT NOT EXISTS选项的审计
DBA_AUDIT_POLICIES    -- 审计POLICIES
DBA_COMMON_AUDIT_TRAIL    -- 标准审计+精细审计

12.将审计结果表从system表空间里移动到别的表空间上

实际上sys.aud$表上包含了两个lob字段,并不是简单的move table就可以。
下面是具体的过程:
alter table sys.aud$ move tablespace users;
alter table sys.aud$ move lob(sqlbind) store as( tablespace USERS);
alter table sys.aud$ move lob(SQLTEXT) store as( tablespace USERS);

alter index sys.I_AUD1 rebuild tablespace users;


Oracle-审计表AUD$无法正常清理数据问题 用户通过数据库管理审计日志包DBMS_AUDIT_MGMT里面的存储过程CREATE_PURGE_JOB创建了定期清理审计日志数据的job,job每1小时执行一次,清理1天以前的审计表数据,运行了一段时间后,用户发现审计表AUD$里面的数据并没有减少过,表里面依然包含了1天以前的数据 阅读详情

相关推荐

ORA-00096: invalid value UNUSED for parameter plsql_code_type

ORA-00096: invalid value UNUSED for parameter plsql_code_type,must be from among NATIVE, INTERPRETE. 环境介绍:客户那边是一套 11.2.0.1.0的数据库,导出数据文件要导入正式生产环境,生产环境是11.2.0.4.0 ,大版本一致。现象:在导入到正式环境的时候一直报 import done ...

a743044559的专栏 1142

oracle审计详解

原帖: http://blog.chinaunix.net/u2/66903/showart_2082884.html Oracle使用大量不同的审计方法来监控使用何种权限,以及访问哪些对象。审计不会防止使用这些权限,但可以提供有用的信息,用于揭示权限的滥用和误用。下表中总结了Oracle数据库中不同类型的审计。审 计 类 型说    明

eolanda的专栏 4050

Oracle DB审计

• 说明DBA 负责的安全和审计工作 • 启用标准数据库审计 • 指定审计选项 • 复查审计信息 • 维护审计线索 责任分离 • 具有DBA 权限的用户必须是可信任的。 – 滥用信任 – 用审计线索保护受信任位置 • 必须共同分担DBA 责任。 • 绝对不要共享帐户。 • DBA 和系统管理员必须由不同的人员担任。 • 分离操作员与DBA 的责任。 以下是

一抹曦阳-Oracle 1万+

oracle审计功能的使用

oracle审计功能的使用 文章目录oracle审计功能的使用一、orecle审计简介二、审计级别三、使用步骤1.查看是否开启审计功能2.开启审计功能四、注意 一、orecle审计简介 用于监视用户所执行的数据库操作(insert、update、delete),默认情况下审计未开启,审计记录存储在系统表空间中。 sys.aud$表中,主要的字段如下: 字段 注释 username 登录的用户 userhost 登录的主机 timestamp 时间戳 owner 操作表的所有

weixin_43938004的博客 5765

oracle数据库用户审计

开启网络监听查看网络监听器状态lsnrctl status关闭监听器lsnrctl stopcd $ORACLE_HOME/network/admin修改:listener.oratnsnames.ora开启监听器lsnrctl start  查看数据库本地监听器SQL>show parameter local指定数据库库中监听器。alter system set local_listene...

heguanghuicn的博客 2672

【JESD79-5之】8 AC & DC 输入测量标准(AC & DC Input Measurement Levels)

时钟被驱动到DRAM,可以通过L/RDIMM模块的RCD来实现,也可以通过U/SODIMM模块的主机来实现(图184)。接收机DQS(脉冲)输入电压灵敏度测试提供了在没有码间干扰(ISI),抖动(Rj, Dj, DCD)和串扰噪声的情况下测试接收机对不同输入电压的灵敏度的方法。接收机数据输入电压灵敏度测试提供了在没有符号间干扰(ISI),抖动(Rj, Dj, DCD)和串扰噪声的情况下测试接收机对不同输入电压的灵敏度的方法。

m0_61126667的博客 1704

数据库oracle审计,Oracle数据库审计策略

Oracle数据库审计策略Oracle数据库默认是关闭审计的,一旦开启了会对oracle数据库的性能产生影响。Oracle默认安装后审计策略设置默认情况下,审计策略是关闭的,而且审计记录存储的模式也未选择。所以默认情况下,某用户对某表做了某操作都是不做任何记录的。audit_sys_operations 值只有TRUE和FALSE两个之分。但是audit_trail值有如下情况:(1)audit_...

weixin_39897449的博客 1861

汇川PLC用户程序结构详解:如何像搭积木一样配置多任务?附EtherCAT最佳实践

本文深入解析汇川PLC用户程序结构,阐述如何像搭积木一样,通过POU、FB、FC等模块化组件高效配置多任务。文章重点结合EtherCAT通讯场景,分享了任务周期、优先级设置的最佳实践与关键避坑指南,帮助工程师构建稳定、高效的运动控制系统。

weixin_29184075的博客 538

开启数据库审计 db,extended级别或os级别)并将审计文件存放到/opt/oracle/audit/下

开启数据库审计 db,extended级别或os级别)并将审计文件存放到/opt/oracle/audit/下

DBA成长之路 2034

【AI气象6】Skilful nowcasting of extreme precipitation with NowcastNet

极端降水是气象灾害的重要因素,因此迫切需要通过高分辨率、长时间预报和局部细节的精准短期预报来减轻其社会经济影响。当前的方法存在模糊、衰减、强度或位置误差,基于物理的数值方法在捕捉关键的混沌动态(如对流起始)时面临挑战,而数据驱动的学习方法则未能遵循内在的物理法则(如平流守恒)。我们提出了 NowcastNet,这是一种针对极端降水的非线性短期预报模型,将物理演变方案与条件学习方法统一到一个端到端的神经网络框架中,通过优化预测误差进行训练。基于来自美国和中国的雷达观测数据,我们的模型能够生成物理上合理的降水短

weixin_51473374的博客 2323

帆软 finereport FCRA 考试 题库+答案,共收录561题,大部分有答案

帆软 finereport FCRA 考试 题库+答案,共收录561题,大部分有答案 入门基础 11.多选题 以下方式中属于FineReport中预览模式的有( ) 分页预览、填报预览、新填报预览、数据分析、移动端预览 16.判断题 FineReport报表工具必须购买激活码后才能使用。 错误,可以免费获取激活码。 29.单选题 FineReport是一款利用( )语言开发的报表工具。java 41.多选题 访问帮助文档的方式有哪些?设计器中社区菜单下-帮助文档;直接访问http://help.finere

qq_37485720的博客 2万+

Oracle数据库invoke语句,Oracle Database标准审计和细粒度审计功能

这篇文章主要简单的讨论一下Oracle的审计功能,包括粗粒度审计、细粒度审计(FGA),另外还将引用一篇文章讨论Oracle默认的SYS用户审计和Oracle 11g Database默认开启的审计功能。一.粗粒度审计功能。1.审计级别:语句级审计(stmt):表示只审计某种类型的SQL语句,不指定结构或对象。权限级审计(privs):表示只审计执行相应动作的系统权限的使用情况。实体级审计(obj...

weixin_29863809的博客 537

神经形态芯片:IBM TrueNorth技术详解以及应用案例

2018年的一项演示中,机器人使用TrueNorth处理了复杂的路径规划,功耗仅为传统系统的1/10。它通过模仿人脑的结构,解决了传统芯片在功耗和并行性上的痛点,并在图像识别、物联网和机器人等领域展现了强大潜力。:不同于传统芯片的时钟驱动,TrueNorth是事件驱动的。例如,工厂中的振动传感器使用TrueNorth检测设备故障的早期迹象,实现了更高效的维护策略,避免了停机时间。:在医疗领域,TrueNorth可以用于可穿戴设备,比如一个智能助听器,它能过滤噪音并增强特定声音,功耗低到可以用纽扣电池供电。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2477

Oracle Database标准审计和细粒度审计功能

这篇文章主要简单的讨论一下Oracle的审计功能,包括粗粒度审计、细粒度审计(FGA) 一.粗粒度审计功能。 1.审计级别: 语句级审计(stmt):表示只审计某种类型的SQL语句,不指定结构或对象。 权限级审计(privs):表示只审计执行相应动作的系统权限的使用情况。 实体级审计(obj):表示只对指定模式上的实体指定语句的审计。     根据用户语句的执行结果,审计语

xiaoxu oracle专栏 5129

《网络信息制作与发布》实训全流程:从专题策划、网站构建到前端实现与上线发布

本文详细介绍了WEB设计专题网站从策划到发布的全流程。主要内容包括:1.网络专题设计(确定主题、编写策划方案、素材搜集整理);2.网站结构构建(设计二级栏目、绘制布局图);3.艺术设计(配色方案、版式设计);4.网页制作(使用Dreamweaver进行标准化布局);5.信息发布(通过Dreamweaver和CuteFTP上传文件、网站维护与备份)。以"学习WEB设计"专题为例,采用框架结构,包含20余个栏目,使用深灰和蓝色为主色调。文章提供了完整的操作步骤和技术要点,适用于网站开发学习者

深耕计算机专业知识与技术。 1532

Android11车机系统海外项目资源包RRO方案优化

本文介绍了汽车设置应用如何通过Android RRO(运行时资源叠加)方案实现多车型差异化资源管理。针对不同车型(国内/海外、轿车/SUV)和配置(方向盘、轮毂等),采用产品变体(productFlavors)构建不同APK版本,并通过JSON配置文件动态启用对应资源包。系统根据车辆下线配置自动匹配适用的资源叠加包,解决了硬编码判断带来的维护问题。该方案实现了资源的高效复用,同时支持灵活配置多种车型组合,为汽车行业多车型共平台开发提供了可扩展的技术实现。

shusuanly的博客 469

开启数据库审计(db,extended级别或os级别),并将审计文件存放到/home/oracle/audit下

审计(Audit)用于监视用户所执行的数据库操作,审计记录可存在数据字典表(称为审计记录:存储在system表空间中的 SYS.AUD表中,可通过视图dbaaudittrail查看或操作系统审计记录中默认位置为表中,可通过视图dba_audit_trail查看)或操作系统审计记录中(默认位置为表中,可通过视图dbaa​uditt​rail查看或操作系统审计记录中默认位置为默认情况下审计是没有开启的。

the_coco的博客 1949

Android Framework 开发工程师职位深度解析与面试指南

摘要:博泰车联网科技(上海)股份有限公司招聘Android Framework开发工程师,负责车载系统的底层开发与优化。岗位要求5年以上经验,深入掌握Android Framework机制(WindowManager、PowerManager等模块),熟悉高通平台中间件架构及NDK/JNI开发,具备性能优化(启动时间、ANR处理)、OTA升级等能力。需熟练使用Android Studio、Git等工具,有车载开发经验者优先。工作内容包括Framework定制开发、问题排查及技术文档编写。

郑伟强dev的专栏 551

Oracle数据库审计功能使用简介

Oracle数据库审计功能使用简介及示例说明。

geriletuma 1808

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

oracle数据库审计(audit)

oracle数据库审计(audit)audit是否开启audit参数1、audit_file_dest2、audit_sys_operations3、audit_syslog_level4、audit_trail审计级别1、Statement2、Privilege3、Object4、其他选项审计相关视图dba_audit_traildba_stmt_audit_optsall_def_audit_...

hanruiding的博客 7216

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

使用oracle数据库审计,Oracle数据库审计功能详解

一、审计分类:Oracle中审计总体上可分为“标准审计”和“细粒度审计”后者也称为“基于政策的审计”,在Oracle10G之后功能得到很大增强。其中标准审计可分为用户级审计和系统级审计。用户级审计是任何Oracle用户可设置的审计,主要是用户针对自己创建的数据库表或视图进行审计,记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SQL操作。系统级审计只能由DBA设置,用以监...

weixin_36224054的博客 2961

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

oracle启动数据库审计功能

audit_trail 的 value值。输入以下命令开启审计功能。

qq_58503141的博客 3390

oracle 审计设置,oracle数据库审计设置

--开启oracle审计su - oraclesqlplus / as sysdbaSQL> show parameter audit--看到有下面的内容表示审计没有开启audit_sys_operations 4 Type boolean FALSEaudit_trail 4 NONE--ORACLE实例采用spfile启动下,开启的SQL命令如下:SQ...

weixin_42510262的博客 1036

oracle审计查询sql语句,Oracle 数据库审计

保证数据库的安全有两种方式,一种是通过权限的存取控制机制,即通过预先控制来防止安全事件的发生;另一种是数据库审计,即对数据库活动做跟踪记录,当发生安全事件时,通过对数据库活动记录进行审计来发现并修复安全问题。Oracle使用大量不同的审计方法来监控使用何种权限,以及访问哪些对象。审计不会防止使用这些权限,但可以提供有用的信息,用于揭示权限的滥用和误用。数据库审计的主要对象包括数据库链接、SQL语句...

weixin_42364833的博客 4527

[转]Oracle DB审计

• 说明DBA 负责的安全和审计工作 • 启用标准数据库审计 • 指定审计选项 • 复查审计信息 • 维护审计线索 责任分离 • 具有DBA 权限的用户必须是可信任的。 – 滥用信任 – 用审计线索保护受信任位置 • 必须共同分担DBA 责任。 • 绝对不要共享帐户。 • DBA 和系统管理员必须由不同的人员担任。 • 分离操作员与DBA 的责任。 ...

weixin_30751947的博客 238

ORACLE的数据库审计 audit

审计的功能:监控特定用户在database 的action(操作) 审计种类: 1)标准数据库审计(语句审计、权限审计、对象审计) 2)基于值的审计(Value-Based, 触发器审计) 3)精细审计(FGA)

微风 9969
上一篇: Navicat for MySQL安装及使用教程
下一篇: DBA必须熟知的一些基本知识
听雪楼主.
博客等级 码龄10年 513粉丝 214原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值