北京快三开奖

  • <tr id="U9YkSO"><strong id="U9YkSO"></strong><small id="U9YkSO"></small><button id="U9YkSO"></button><li id="U9YkSO"><noscript id="U9YkSO"><big id="U9YkSO"></big><dt id="U9YkSO"></dt></noscript></li></tr><ol id="U9YkSO"><option id="U9YkSO"><table id="U9YkSO"><blockquote id="U9YkSO"><tbody id="U9YkSO"></tbody></blockquote></table></option></ol><u id="U9YkSO"></u><kbd id="U9YkSO"><kbd id="U9YkSO"></kbd></kbd>

    <code id="U9YkSO"><strong id="U9YkSO"></strong></code>

    <fieldset id="U9YkSO"></fieldset>
          <span id="U9YkSO"></span>

              <ins id="U9YkSO"></ins>
              <acronym id="U9YkSO"><em id="U9YkSO"></em><td id="U9YkSO"><div id="U9YkSO"></div></td></acronym><address id="U9YkSO"><big id="U9YkSO"><big id="U9YkSO"></big><legend id="U9YkSO"></legend></big></address>

              <i id="U9YkSO"><div id="U9YkSO"><ins id="U9YkSO"></ins></div></i>
              <i id="U9YkSO"></i>
            1. <dl id="U9YkSO"></dl>
              1. <blockquote id="U9YkSO"><q id="U9YkSO"><noscript id="U9YkSO"></noscript><dt id="U9YkSO"></dt></q></blockquote><noframes id="U9YkSO"><i id="U9YkSO"></i>
                企业空间 推销商城 存储论坛
                北京快三开奖全闪存阵列 IBM云盘算 Acronis 安克诺斯 安腾普 腾保数据
                首页 > 信息平安 > 数据库平安 > 注释

                Oracle数据库审计功用详解

                2017-07-06 20:46泉源:中国存储网
                导读:在Oracle10G之后功用失掉很大加强。此中规范审计可分为用户级审计和零碎级审计。用户级审计是任何Oracle用户可设置的审计,次要是用户针对本人创立的数据库表或视图停止审计。

                一、审计分类:

                Oracle中审计总体上可分为“规范审计”和“细粒度审计”后者也称为“基于政策的审计”,在Oracle10G之后功用失掉很大加强。此中规范审计可分为用户级审计和零碎级审计。用户级审计是任何Oracle用户可设置的审计,次要是用户针对本人创立的数据库表或视图停止审计,记载一切用户对这些表或视图的统统乐成和(或)不可功的拜访要求以及种种范例的SQL操纵。零碎级审计只能由DBA设置,用以监测乐成或失败的登录要求、监测GRANT和REVOKE操纵以及其他数据库级权限下的操纵。

                二、规范审计:

                1、分类:

                在ORACLE中辨别支持以下三种规范审计范例:

                •   语句审计,对某品种型的SQL语句审计,不指定构造或工具。
                •   特权审计,对实行相应举措的零碎特权的运用审计。
                •   工具审计,对一特别形式工具上的指定语句的审计。

                这三种规范审计范例辨别对如下3方面停止审计:

                •   审计语句的乐成实行、不可功实行,或许其两者。
                •   对每一用户会话审计语句实行一次或许对语句每次实行审计一次。
                •   对全部用户或指定用户的运动的审计。

                当数据库的审计功用翻开后,在语句实行阶段发生审计记载。审计记载包括有审计的操纵、用户实行的操纵、操纵的日期和工夫等信息。审计记载可存在数据字典表(称为审计记载)或操纵零碎审计记载中。数据库审计记载是在SYS形式的AUD$表中。

                2、设置ORACLE规范审计:

                下列步调可以设置ORACLE的规范审计功用:

                (1)修正初始化参数文件(initsid.ora)

                假如运用效劳器参数文件运用alter system set parameter=value scope=spfileboth,概况参照1.1节中关于参数文件的引见),设置 AUDIT_TRAIL参数,而且重启数据库。AUDIT_TRAIL的取值如下:

                 DBTRUE:启动审计功用,而且把审计后果寄存在数据库的 SYS.AUD$ 表中

                 OS:启动审计功用,并把审计后果寄存在操纵零碎的审计信息中

                 DB_EXTENDED:具有DBTRUE的功用,别的填写AUD$的SQLBIND和SQLTEXT字段

                 NONEFALSE:封闭审计功用

                (2)设置AUDIT_TRAIL参数:

                假如设置 AUDIT_TRAIL = OS, 还需求修正参数AUDIT_FILE_DEST。

                假如操纵零碎支持设置AUDIT_TRAIL=OS,文件会主动寄存在AUDIT_FILE

                _DEST所指定的目次下,而且文件名包括历程的PID。

                比方:

                AUDIT_FILE_DEST = $ORACLE_HOMErdbmsaudit

                $ ls -l $ORACLE_HOMErdbmsaudit

                -rw-rw----  1 ora92dba881 Mar 17 0957 ora_13264.aud

                $ ps -efgrep 13264

                ora92 13264 13235 0 095643  000 oracleV92 (DESCRIPTION=(LOCAL=Y)

                SQL select spid, program, username from v$process;

                SPID PROGRAM USERNAME

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

                13264oracle@frhp11 (TNS V1-V3)ora92

                (3)确认审计相干的表能否曾经装置

                SQLPLUS connect  AS SYSDBA

                SQLPLUS select  from sys.aud$;  -- 没有记载前往

                SQLPLUS select  from dba_audit_trail; -- 没有记载前往

                假如做上述盘问的时分发明表不存在,阐明审计相干的表还没有装置,需求装置。

                SQLPLUS connect  as sysdba

                SQLPLUS @$ORACLE_HOMErdbmsadmincataudit.sql

                审计表装置在SYSTEM表空间。以是要确保SYSTEM表空间又充足的空间寄存审计信息。

                (4)封闭偏重启数据库

                (5)设置所需求的审计信息

                上面是一个例子

                SQL connect systemmanager

                SQL grant audit system to scott;

                SQL connect scotttiger

                SQL audit session;

                中止审计:

                SQL noaudit session;

                通常设置了规范审计后都是经过Audit语句开启审计,运用noaudit语句发出审计。如下所示:

                对修正SC表构造或数据的操纵停止审计可运用如下语句:

                AUDIE ALTER,UPDATE ON SC;

                取消对SC表的统统审计可运用如下语句:

                NOAUDIT ALL ON SC;

                3、设置审计的实例(对试图实验口令的拜访的审计):

                以下是一个审计的实例,用于记载实验经过蛮横实验法破译ORACLE帐号口令的例子:

                (1)修正审计相干参数(参照下面引见的办法)

                (2)重启数据库

                (3)设置审计信息

                SQLAUDIT ALL BY ACCESS WHENEVER NOT SUCCESSFUL

                (4)盘问AUD$

                SQL select returncode, action#, userid, userhost, terminal,timestamp

                from aud$

                RETURNCODEACTION# USERID   USERHOST  TERMINAL

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

                1017100  SCOTTWPRATA-BR

                1017100  SCOTTWPRATA-BR

                1017100  SCOTTWPRATA-BR

                ORA-1017的寄义为错误的用户名口令。经过检查AUD$表可以清晰地看到WPRATA-BR实验破译SCOTT的口令。可以经过上面一个存储进程来剖析AUD$表,找出可疑的信息:

                create or replace procedure AuditLogin(Since Varchar2,Times PLS_Integer)

                is

                USER_ID VARCHAR2(20);

                cursor c1 is select userid,count() from sys.aud$ where returncode='1017' and timestamp#=to_date(Since,'yyyy-mm-dd')

                group by userid;

                cursor C2 IS Select userhost, terminal,TO_CHAR(timestamp#,'YYYY-MM-DDHH24MISS')

                from sys.aud$ WHERE returncode='1017' and timestamp#=to_date(Since,'yyyy-mm-dd') AND USERID=USER_ID;

                ct PLS_INTEGER;

                V_USERHOST VARCHAR2(40);

                V_TERMINAL VARCHAR(40);

                V_DATE VARCHAR2(40);

                BEGIN

                OPEN C1;

                dbms_output.enable(1024000);

                LOOP

                FETCH C1 INTO USER_ID,CT;

                EXIT WHEN C1%NOTFOUND;

                IF(CT=TIMES) THEN

                DBMS_OUTPUT.PUT_LINE('USER BROKEN ALARM'USER_ID);

                OPEN C2;

                LOOP

                FETCH C2 INTO V_USERhOST,V_TERMINAL,V_DATE;

                DBMS_OUTPUT.PUT_LINE(CHR(9)'HOST'V_USERHOST',TERM'V_TERMINAL',TIME'V_DATE);

                EXIT WHEN C2%NOTFOUND;

                END LOOP;

                close c2;

                END IF;

                END LOOP;

                close c1;

                END;

                一下是实行后果:

                SQLset serveroutput on;

                SQL execute auditlogin('2004-01-01',2);

                USER BROKEN ALARMSYS

                HOST,TERMXUJI,TIME2004-09-22110800

                HOST,TERMXUJI,TIME2004-09-22110801

                HOST,TERMXUJI,TIME2004-09-22110929

                HOST,TERMXUJI,TIME2004-09-22110929

                PLSQL 进程已乐成完成。

                4、将审计相干的表挪动到其他表空间:

                由于AUD$表等审计相干的表寄存在SYSTEM表空间,因而为了不影响零碎的功能,维护SYSTEM表空间,最好把AUD$挪动到其他的表空间上。可以运用上面的语句来停止挪动:

                sqlconnect  as sysdba;

                sqlalter table aud$ move tablespace new tablespace;

                sqlalter index I_aud1 rebuild online tablespace new tablespace;

                本文URL地点:http://www.bianceng.cn/database/Oracle/201410/45407.htm

                持续阅读
                要害词 :
                Oracle数据库审计
                中国存储网声明:此文观念不代表本站态度,若有版权疑问请联络我们。
                相干阅读
                产物引荐
                头条阅读
                栏目热门

                Copyright @ 2006-2019 ChinaStor.COM 版权一切 京ICP备14047533号

                中国存储网

                存储第一站,存储流派,存储在线交换平台