ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 审计原则

审计原则

原创 Linux操作系统 作者:bjiokn 时间:2009-12-17 19:08:50 0 删除 编辑

审计原则

审计原则
通过首先确定审计要求,然后设置可以满足这些要求的最少审计选项来限定审计。要尽可能使用对象审计来减少生成的条目。如果必须使用语句或权限审计,则下列设置可以让审计生成的内容减至最少:
指定要审计的用户
按会话审计,而不是按访问审计
审计成功或失败,但不要既成功又失败
注:审计记录可以写入 SYS.AUD$ 或操作系统的审计线索。能否使用操作系统的审计线索要取决于操作系统。
监视审计线索的增长:
如果审计线索已满,则不能再插入任何审计记录,并且审计过的语句不能成功执行。发布已审计语句的所有用户都将收到错误消息。您必须先释放审计线索中的一些空间,而后才能执行这些语句。
要确保审计线索不会增长太快,应注意以下要求:
只有需要时才启用审计。
选择特定的审计选项。
严格控制方案对象审计。用户可以对自己拥有的对象打开审计。
尽量避免授予 AUDIT ANY 权限,因为它还能让用户打开审计。
定期使用 DELETE 或 TRUNCATE 命令删除审计线索中的审计记录。审计文件位于 $ORACLE_HOME/rdbms/audit 目录中。
保护审计线索:
应保护审计线索,以防添加、修改或删除审计信息。发出以下命令:
 SQL> AUDIT delete ON sys.aud$ BY ACCESS;
可防止审计线索未经授权即被删除;只有 DBA 才拥有 DELETE_CATALOG_ROLE 角色。
将审计线索移到系统表空间外:
随着新记录插入数据库审计线索,表 AUD$ 将无限增长。尽管不应丢弃 AUD$ 表,但是可以从中删除或截断信息,因为其中的行只是为了提供信息,对于运行 Oracle 例程并不是必需的。由于 AUD$ 表在增长后又会收缩,所以应将其存储在系统表空间之外。
若要将 AUD$ 移至 AUDIT_TAB 表空间,则:
确保审计当前是禁用的。
输入以下命令:
SQL> ALTER TABLE aud$ MOVE TABLESPACE AUDIT_TAB;
输入以下命令:
SQL> CREATE INDEX i_aud1 ON aud$(sessionid, ses$tid)
 2   TABLESPACE AUDIT_IDX;
对例程启用审计。


语句审计: audit table;
权限审计: audit create any trigger;
方案对象(实体)审计: audit select on scott.emp;
能用方案对象审计的就不要用权限审计,能用权限审计的就不要用语句审计。
审计条件可以指定是那种:by session / by access  (只审计整个会话中最后一条语句/对整个会话的所有语句审计)
 audit select on scott.emp by access; 

获取审计信息:
 select * from aud$;
 show parameter from audit_trail

实验:
----------------------------------------------------------
 
C:\>sqlplus

SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 12月 17 20:05:46 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

请输入用户名:  sys/oracle as sysdba

连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> select * from aud$;

未选定行

SQL> show parameter from audit_trail

(找到 C:\oracle\product\10.2.0\db_1\database\initorcl.ora 打开添加: *.audit_trail=true)

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  293601280 bytes
Fixed Size                  1248624 bytes
Variable Size             109052560 bytes
Database Buffers          180355072 bytes
Redo Buffers                2945024 bytes
数据库装载完毕。
数据库已经打开。
SQL> audit select on scott.emp by access;

审计已成功。

SQL> conn scott/tiger
已连接。
SQL> select empno,ename from emp where empno=7369;

     EMPNO ENAME
---------- ----------
      7369 SMITH

SQL> /

     EMPNO ENAME
---------- ----------
      7369 SMITH
SQL> conn sys/oracle as sysdba
已连接。
SQL> desc aud$;
SQL> select count(*) from aud$;

  COUNT(*)
----------
         2

SQL> select count(*) from aud$;

  COUNT(*)
----------
         2
SQL> noaudit select on scott.emp;

审计未成功。

SQL> conn scott/tiger
已连接。
SQL> select empno,ename from emp where empno=7369;

     EMPNO ENAME
---------- ----------
      7369 SMITH

SQL> /

     EMPNO ENAME
---------- ----------
      7369 SMITH
SQL> conn sys/oracle as sysdba
已连接。
SQL> select SESSIONID,OBJ$NAME,USERHOST from aud$;

未选定行

SQL> select count(*) from aud$;

  COUNT(*)
----------
         0
(关闭审计成功)

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

《完》

 

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21021875/viewspace-622739/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: UltraISO_v9.35
请登录后发表评论 登录
全部评论

注册时间:2009-05-31

  • 博文量
    94
  • 访问量
    113661