精华内容
下载资源
问答
  • 1.打开数据库审计alter system set audit_sys_operations=TRUE scope=spfile; //审计管理用户alter system set audit_trail=db,extended scope=spfile; //将sql语句写入审计表中2.对数据库重...

    在我们日常的工作中,一些安全性的要求高的数据库需要增加审计操作,哪个用户什么时间做了什么操作。

    1.打开数据库的审计

    alter system set audit_sys_operations=TRUE scope=spfile; //审计管理用户

    alter system set audit_trail=db,extended scope=spfile; //将sql语句写入审计表中

    2.对数据库重启并查看

    重启数据库

    shutdown immediate;

    startup;

    show parameter audit;

    3.增加审计策略

    我们需要对数据库的caiwu用户的所有操作进行审计

    // 审计用户caiwu所有成功的操作

    audit all by caiwu by access whenever successful;

    或者

    //针对用户的审计(未执行成功的也审计)

    audit select table by caiwu by access; //查表审计

    audit update table by caiwu by access; //更新审计

    audit delete table by caiwu by access; //删除审计

    audit insert table by caiwu by access; //插入审计

    //针对某表的更新、删除审计(错误也审计)

    AUDIT UPDATE,DELETE,INSERT ON T_TEST by access;

    //保护审计

    audit all on sys.aud$ by access;

    4.取消审计

    NOAUDIT UPDATE,DELETE,INSERT ON T_TEST by access;

    5.查询审计结果

    select OS_USERNAME,username,USERHOST,TERMINAL,TIMESTAMP,OWNER,obj_name,ACTION_NAME,sessionid,os_process,sql_text from dba_audit_trail;

    6.将审计表查询开放给某个用户

    grant select on dba_audit_trail to caiwu;

    7.清空审计记录

    DELETE FROM SYS.AUD$;

    展开全文
  • oracle审计功能查看审计功能是否开启开启审计功能:关闭审计功能审计功能相关视图审计功能的使用数据库打开的语句审计功能数据库打开的权限审计功能数据库审计总体情况数据库语句审计数据库对象审计数据库会话情况...

    查看审计功能是否开启

      show parameter audit;
    

    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参数指定;

    开启审计功能:

    	SQL> alter system set audit_sys_operations=TRUE scope=spfile;--审计管理用户(以sysdba/sysoper角色登陆)
       	SQL> alter system set audit_trail=db,extended scope=spfile;
    

    关闭审计功能:

           SQL> conn /as sysdba
           SQL> show parameter audit
           SQL> alter system set audit_trail = none scope=spfile;
    

    关闭审计功能需重启实例

    审计功能相关视图

           sys.aud$
           dba_audit_trail
           dba_audit_session
           dba_audit_object
           dba_audit_statement
           dba_audit_exits
           dba_stmt_audit_opts
           dba_priv_audit_opts
           dba_obj_audit_opts
    

    审计功能的使用

    数据库打开的语句审计功能

    	select nvl(t.user_name,'EVERY_USER) 审计用户,t.audit_option 操作类型,t.success,t.failure from dba_stmt_audit_opts t;
    

    解析:SYSTEM WIDE AUDITING 对任何用户做了audit_option中的操作时,结果为success或者failure进行审计

    数据库打开的权限审计功能

    	select nvl(t.user_name,'EVERY_USER) 审计用户,t.audit_option 操作类型,t.success,t.failure from dba_priv_audit_opts t;
    

    解析:SYSTEM WIDE AUDITING 对任何用户做了audit_option中的操作时,结果为success或者failure进行审计

    数据库审计总体情况

    	select coung(*) from dba_audit_trail where t.timestamp > date '2021-01-01' and t.timestamp < date '2021-06-30';
    

    解析:数据库审计功能总共审计的条数,包含各个功能审计的内容。

    数据库语句审计

    	select count(*) from dba_audit_statement t where t.timestamp > date '2021-01-01' and t.timestamp < date '2021-06-30';
    	select t.USERNAME,count(t.USERNAME) from dba_audit_statement t where t.timestamp > date '2021-01-01' and t.timestamp < date '2021-06-30' group by t.USERNAME order by t.USERNAME;
    	select t.ACTION_NAME,count(t.ACTION_NAME) from dba_audit_statement t where t.timestamp > date '2021-01-01' and t.timestamp < date '2021-06-30' group by t.ACTION_NAME order by t.ACTION_NAME;
    

    解析:可查看某用户被语句审计的次数,具体行为可查看更为详细的审计内容。

    数据库对象审计

    	select count(*) from dba_audit_object t where t.timestamp > date '2021-01-01' and t.timestamp < date '2021-06-30';
    	select t.USERNAME,count(t.USERNAME) from dba_audit_object t where t.timestamp > date '2021-01-01' and t.timestamp < date '2021-06-30' group by t.USERNAME order by t.USERNAME;
    	select t.ACTION_NAME,count(t.ACTION_NAME) from dba_audit_statement t where t.timestamp > date '2021-01-01' and t.timestamp < date '2021-06-30' group by t.ACTION_NAME order by t.ACTION_NAME;
    

    解析:可查看某用户被对象审计的次数,具体行为可查看更为详细的审计内容。

    数据库会话情况审计

    	select count(*) from dba_audit_session t where t.timestamp > date '2021-01-01' and t.timestamp < date '2021-06-30';
    	select t.USERNAME,count(t.USERNAME) from dba_audit_session t where t.timestamp > date '2021-01-01' and t.timestamp < date '2021-06-30' group by t.USERNAME order by t.USERNAME;
    	select t.ACTION_NAME,count(t.ACTION_NAME) from dba_audit_session t where t.timestamp > date '2021-01-01' and t.timestamp < date '2021-06-30' group by t.ACTION_NAME order by t.ACTION_NAME;
    

    解析:可查看某用户被会话审计的次数,具体行为可查看更为详细的审计内容。

    展开全文
  • 第1步:查看审计功能是否开启?SQL> show parameter audit;NAMETYPEVALUE------------------------------------ ----------- ------------------------------audit_file_dest...

    第1步:查看审计功能是否开启?

    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

    audit_trail 的value值为NONE表示不开启;

    audit_trail 的value值为FALSE表示不开启;

    audit_trail 的value值为DB表示开启;

    audit_trail 的value值为TURE表示开启;

    audit_trail 的value值为OS表示审计记录写入一个操作系统文件(不是特别理解);

    第2步:开启审计功能

    SQL> alter system set audit_sys_operations=TRUE scope=spfile;--审计管理用户(以sysdba/sysoper角色登陆)

    SQL> alter system set audit_trail=db,extended scope=spfile;

    重启实例

    第3步:关闭审计功能

    SQL> conn /as sysdba

    SQL> show parameter audit

    SQL> alter system set audit_trail = none scope=spfile;

    重启实例

    展开全文
  • 一、何谓数据库审计数据库审计,就是对数据库的活动做跟踪记录,主要包括数据库连接,SQL语句执行,数据库对象访问这些方面的跟踪记录。二、审记记录的存储方式分为两种:一种是存储在操作系统文件中,一种是存储...

    一、何谓数据库审计?

    数据库审计,就是对数据库的活动做跟踪记录,主要包括数据库连接,SQL语句执行,数据库对象访问这些方面的跟踪记录。

    二、审记记录的存储方式

    分为两种:一种是存储在操作系统文件中,一种是存储在system表空间中的SYS.AUD$表中。

    三、对数据库性能影响的考虑

    审计必然需要占用CPU,因此,需要综合平衡审计需求与性能之间的平衡性问题,以确定出最好的审许策略。

    四、审记结果中包含哪些信息

    前面讲到审许结果的存储分数据库存储和文件存储两种方式。对于数据库存储的情况,SYS.AUD$表中包含以下信息:

    1)·操作系统用户名

    2)·数据库用户名

    3)·连接会话标识

    4)·终端标识

    5)·被访问的schema对象名

    6)·尝试的操作

    7)·操作的完整代码

    8)·日期和时间戳

    若审计记录存储在外部操作文件中,则该文件可能包含以下信息:

    1)·操作系统产生的审计记录

    2)·数据库的审计记录

    3)·被审计到的数据库操作

    4)·超级管理员(SYS)的审计记录

    其中,被写到文件中的审计记录是以编码的方式存储的,如果要理解这些编码所对应的信息,可以查询以下数据字典表:

    编码信息数据字典表

    -------------------------------

    数据库操作代码表示尝试的操作。它的相关描述可以从数据字典表AUDIT_ACTIONS表中查询到

    操作所使用的权限可以在字典表SYSTEM_PRIVILEGE_MAP中查询到对应的说明

    完整的操作代码操作成功时将返回0,失败时返回相关oracle错误信息,错误信息码所对应的说明可以从oracle官方文档中获得

    --------------------------------

    五、缺省的审计

    不论当前是否已经开启的审计功能,数据库都会把一些数据库相关的操作写入外部审计文件中(注意:不是写入SYS.AUD$表),这些被缺省审计的操作是:

    1)·以超级管理员权限对数据库的连接(connectASSYSDBA或connectASSYSOPER)

    2)·数据库启动

    3)·数据库停止

    六、对超级管理员用户的操作行为的审计

    超级管理员用户指的是以ASSYSDBA或ASSYSOPER方式连接数据库的用户。初始化参数AUDIT_SYS_OPERATIONS用来指定是超级管理员的审计选项,如果将AUDIT_SYS_OPERATIONS设置为TRUE,那么所有超级管理员的操作都将被审计,而不管当前是否有开启审计功能,而且所有的审计信息都被写入外部审计文件中(注意:不是写入SYS.AUD$表)。

    七、执行审计

    1.设定审计记录的存放位置

    初始化参数AUDIT_TRAIL指定了审计记录的存放位置,该参数有三个取值:

    1)·DB审计记录存放在数据库的SYS.AUD$表中

    2)·OS审计记录存放在外部的操作系统文件中

    3)·NONE关闭审计(缺省值)

    初始化参数AUDIT_FILE_DEST指定了当审外部审记文件目标存储路径,其缺省值是$ORACLE_HOME/rdbms/audit

    2.审计选项

    这个审计选项指的是执行审计的AUDIT语句的可选项。AUDIT语句的语法请参考oracle官方SQL参考。

    3.以实例说明审计

    a.审计某用户的会话的创建与结束

    AUDITSESSIONBYscott,fey;

    b.审计所有用户的会话的创建与结束

    AUDITSESSION;

    c.审计删除表的操作

    AUDITDELETEANYTABLE;

    c.审计删除表的操作(限制:只审计删除失败的情况)

    AUDITDELETEANYTABLEWHENEVERNOTSUCCESSFUL;

    d.审计删除表的操作(限制:只审计删除成功的情况)

    AUDITDELETEANYTABLEWHENEVERSUCCESSFUL;

    e.审计删除表的操作(限制:同一个会话中相同的操作语句只审计一次)

    AUDITDELETEANYTABLEBYSESSION;

    (注:对于这种情况,如果审计记录被设定为存储在外部文件中时,这个效果是体现不出来的,因为oracle无法判断是否已经审计过相同的操作语句。)

    f.审计删除表的操作(限制:每支删除语句都审计,不论同一会话中是否有多条相同的操作语句)

    AUDITDELETEANYTABLEBYACCESS;

    g.审计对fey.employee表的delete操作

    AUDITDELETEONfey.employee;

    h.审计对fey.employee表的delete、updet、insert操作

    AUDITDELETE,UPDATE,INSERTONfey.employee;

    八、停止审计

    停止审计使用NOAUDIT语句,该语句的语法请参考oracle官方SQL参考。下面以实例说明NOAUDIT的使用:

    a.停止所有对会话的创建与结束的审计

    NOAUDITSESSION;

    b.停止对用户fey,scott的会话的创建与结束的审计

    NOAUDITSESSIONBYfey,scott;

    c.停止审计删除表的操作

    NOAUDITDELETEANYTABLE;

    c.停止审计删除表的操作(限制:停止审计删除失败的情况)

    NOAUDITDELETEANYTABLEWHENEVERNOTSUCCESSFUL;

    d.停止审计删除表的操作(限制:停止审计删除成功的情况)

    NOAUDITDELETEANYTABLEWHENEVERSUCCESSFUL;

    g.停止审计对fey.employee表的delete操作

    NOAUDITDELETEONfey.employee;

    h.停止审计对fey.employee表的delete、updet、insert操作

    NOAUDITDELETE,UPDATE,INSERTONfey.employee;

    九、对审计记录表SYS.AUD$的管理

    当SYS.AUD$表的审计记录越来越多的时候,以至达到存储极限时,会因为审计记录无法写入而产生错误。或许我还也需要对该表的数据进行一些转储或者碎片的整理,或是删除一些我们认为不再需要的审计记录。这些都是要考虑的事情。下面给出一个对该表进行存储碎片的整理的一个方法:

    a.将该表的数据selectinto到另一个表中,或利用export导出到外部文件

    b.truncate这张表(要以超级管理员登录才行)

    c.再将原先转储的数据再加载进来。

    也许我们需要对针对SYS.AUD$表的操作进行审计,如:AUDITINSERT,UPDATE,DELETEONsys.aud$BYACCESS;

    十、Fine-Grained审计

    如前面所述,审计的记录中并没有含操作所作用的数据,比如说,需要审计针对一个表的select,而且需要在审计记录中包含select语句所返回的数据。这时,就需要用到Fine-Grained审计。Fine-Grained审计是基于oracle的事件,其原理是在insert,update或delete相关的事件中截取相关的数据。属于orale程序开发的范畴。具体可以参考相关oracle文檔。

    十一、审计相关的数据字典视图

    STMT_AUDIT_OPTION_MAP

    AUDIT_ACTIONS

    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

    DBA_AUDIT_STATEMENT

    USER_AUDIT_STATEMENT

    DBA_AUDIT_EXISTS

    DBA_AUDIT_POLICIES

    DBA_FGA_AUDIT_TRAIL

    各视图的详细说明可以参考oracle官方参考手册。

    下面以安华金和数据库安全审计系统为例,详细介绍一下产品功能:

    数据库发现与管理

    基于流量识别技术,自动发现网络中所有的数据库,并提供自动添加数据库的功能,解决网络环境复杂、数据资产不清晰等问题;为重要数据库添加“关注”;对同类或同业务数据库进行分组管理;使用默认或自定义规则,快速关联数据库。

    探针式数据采集

    当针对复杂的虚拟化网络环境或本地数据库进行审计时,需要使用“探针”的部署方式,即产品在应用端或数据库服务器部署RMAgent组件,通过虚拟环境分配的审计管理网口进行数据传输,完成数据库流量采集。

    结果集审计

    DAS支持审计SQL语句的执行结果,包括执行该SQL语句的影响行数、响应时间和应答错误号。另外,用户可以在DAS中定义结果集中包含特定字段时是否打开审计、告警开关。

    加密协议解析

    在非安全的环境中,为了保证数据库服务的安全性,组织通常选择开启数据访问通信加密功能,然而也为审计解析带来困难,DAS的审计功能通过解析数据库通讯协议获取数据信息。

    应用关联审计与监控

    常规的数据库通讯协议解析只能解析到客户端一层的信息,DAS采用在应用端部署插件的方式,基于应用会话捕获“应用账户”及“应用IP”等关联审计信息,并添加到风险策略进行风险行为监控。

    数据库对象统计

    通过对象统计实时监测对表的操作以及访问情况,并可标记敏感表,实现对敏感表的操作统计和深度追踪,从而对敏感数据进行实时监控。

    数据库行为监测

    当外部系统利用数据库漏洞进行攻击时,DAS可以实时捕获到对应的SQL语句和相关会话信息并发送告警,实时监控入侵行为;当隐藏在应用软件中的后门程序启动时,DAS提供异常情况的实时告警,实时监控异常行为;DAS提供丰富的规则类型,并支持从审计的行为记录结果中一键设置规则,监控敏感表的访问权限、操作权限和影响行数,并判断NO WHERE语句风险,实时监控数据库违规行为。

    数据库行为建模

    DAS在解析数据库通讯协议的过程中不断学习,建立和完善SQL语句模板,并结合会话信息和应用关联信息实现数据库行为建模。

    多维度关联分析

    DAS提供数据库全局查询、分组查询和独立查询三种分析视角,用户可以根据业务需求进行综合分析。同时,DAS提供用户行为的统计信息环比结果,帮助用户直观获取同一数据库不同时间段及不同数据库同一时间段的SQL语句量和会话量的对比数据和变化趋势。

    丰富的报表展现

    “报表”功能用于表现审计日志的数据化分析结果,帮助安全管理人员更加便捷、深入的剖析数据库运行风险。

    合规性报表:包括SOX、PCI、等保合规分析报表。

    专项报表:提供风险、性能、客户端、失败信息等多维度的独立分析报表。

    综合报表:单库或全量数据库审计信息的全量综合分析。

    自定义报表:自定义符合自身业务特点的报表。

    数据库性能分析

    DAS实时监控数据库的SQL吞吐量和会话并发量,从而评估数据库运行状态和资源使用情况。

    提供独立的“Top SQL”分析界面,帮助用户快速定位应用系统或运维操作过程中耗时最长、操作频率最高的SQL语句,协助优化业务系统,提高数据库资源使用率。

    数据备份与恢复

    DAS将存储空间进行合理划分,分别存储“在线语句量”和“备份语句量”。DAS支持对在线语句进行全文检索和分析,并自动压缩和存储备份语句。

    系统权限控制

    针对这种复杂的人员结构以及复杂的业务场景,DAS增加数据库组、用户和角色,以实现详细的管理权限划分。

    对外数据传输接口

    为便于第三方平台接收日志进行二次分析,DAS提供数据对外传输能力,并提供标准化接口(例如Kafka接口)。除此之外,DAS还支持抽取“系统审计日志”并传输给第三方系统监管平台,或者通过SNMP方式传递系统的CPU、内存等操作系统层信息,便于用户对审计设备的监督、管理。

    多节点集群管理

    DAS支持多节点部署。各审计节点通过上报、审批加入集群管理列表,通过集权管理中心登录和管理各审计节点。

    展开全文
  • 开启和关闭oracle数据库中的审计功能第1步:查看审计功能是否开启?SQL>showparameteraudit;NAMETYPEVALUE--------------------------------------------------------------------audit_file_deststring...
  • oracle数据库用户审计

    千次阅读 2018-02-27 23:31:45
    开启网络监听查看网络监听器状态lsnrctl status关闭监听器lsnrctl stopcd $ORACLE_HOME/network/admin修改:listener.oratnsnames.ora开启监听器lsnrctl start 查看数据库本地监听器SQL&gt;show parameter ...
  • Oracle 数据库SQL审计

    2019-05-07 16:47:00
    在我们日常的工作中,一些...1.打开数据库审计 alter system set audit_sys_operations=TRUE scope=spfile; //审计管理用户 alter system set audit_trail=db,extended scope=spfile; //将sql语句写入审计表中 ...
  • Oracle数据库SQL审计

    2018-02-08 13:49:54
    在我们日常的工作中,...1.打开数据库审计 alter system set audit_sys_operations=TRUE scope=spfile; //审计管理用户 alter system set audit_trail=db,extended scope=spfile; //将sql语句写入审计表中 2.对...
  • 开启和关闭oracle数据库中的审计功能第1步:查看审计功能是否开启?SQL>showparameteraudit;NAMETYPEVALUE--------------------------------------------------------------------audit_file_deststring...
  • 1、是否开启审计功能查询show parameter auditNAME TYPE VALUE------------------------------------ ----------- ------------------------------audit_file_dest...
  • 如何开启和关闭oracle数据库中的审计功能? 第1步:查看审计功能是否开启? SQL> show parameter audit; NAME TYPE VALUE ------------------------------------ ----------- -----------------------...
  • ORACLE数据库标准审计

    2011-07-26 15:51:11
    1、什么是审计 审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计跟踪结果存放到OS文件(默认位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/)或数据库(存储在syste...
  • [Oracle]数据库安全之-审计auditOracle审计是一个事后的工作,即数据库出现安全问题后,为了定位、发现问题的根源,可以通过审计追根溯源。Oracle审计主要包含以下3个部分:Trigger-based Auditing(触发器)...
  • Oracle数据库审计

    千次阅读 2017-06-25 12:26:18
    Oracle数据库审计 Oracle使用大量不同的审计方法来监控使用何种权限,以及访问哪些对象。审计不会防止使用这些权限,但可以提供有用的信息,用于揭示权限的滥用和误用。下表中总结了Oracle数据库中不同类型的审计:...
  • 第1步:查看审计功能是否开启?SQL> show parameter audit;NAMETYPEVALUE------------------------------------ ----------- ------------------------------audit_file_dest...
  • Oracle 数据库审计

    千次阅读 2014-05-18 22:26:09
    保证数据库的安全有两...Oracle使用大量不同的审计方法来监控使用何种权限,以及访问哪些对象。审计不会防止使用这些权限,但可以提供有用的信息,用于揭示权限的滥用和误用。数据库审计的主要对象包括数据库链接、SQL
  • oracle数据库审计

    2009-08-19 10:05:04
    审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计跟踪结果存放到OS文件(默认位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/)或数据库(存储在system表空间中的 SYS.AUD$表中,可通过视图dba_audit_...
  • oracle11g中,数据库审计功能是默认开启的(这和oracle10g的不一样,10g默认是关闭的)。1.查看审计功能是否开启:audit_trail 的value值为NONE表示不开启;audit_trail 的value值为FALSE表示不开启;audit_trail ...
  • ORACLE_OCP之实施Oracle数据库审计 文章目标: 描述DBA的安全性和审计职责 启用统一审计 创建统一审计策略 维护审计记录 一、数据库安全 一个安全的系统可确保其中包含的数据的机密性。 安全性主要有以下几个...
  • 这篇文章主要简单的讨论一下Oracle审计功能,包括粗粒度审计、细粒度审计(FGA),另外还将引用一篇文章讨论Oracle默认的SYS用户审计和Oracle 11g Database默认开启审计功能。一.粗粒度审计功能。1.审计级别:语句...
  • oracle11g中,数据库审计功能是默认开启的(这和oracle10g的不一样,10g默认是关闭的)。 1.查看审计功能是否开启: audit_trail 的value值为NONE表示不开启; audit_trail 的value值为FALSE表示不开启; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,172
精华内容 3,268
关键字:

oracle数据库开启审计功能