oracle数据审计 AUDIT
•何为审计
数据库审计,就是对数据库的活动做跟踪记录,主要包括数据库连接,SQL语句执行,数据库对象访问这些方面的跟踪记录。
•现实作用
安全控制、跟踪数据变化、程序BUG调试、自定义的数据汇总分析、操作日志
•存储方式
一种是存储在操作系统文件中,一种是存储在system表空间中的SYS.AUD$表中
•性能影响
审计必然需要占用CPU,因此,需要综合平衡审计需求与性能之间的平衡性问题,以确定出最好的审许策略。
•包含信息
操作系统用户名、数据库用户名、连接会话标识、终端标识、被访问的schema对象名、尝试的操作、操作完整代码、日期时间戳
•三种级别的审计:Statement(语句)、Privilege(权限)、object(对象)。
•审计的一些其他选项
by access / by session:
by access 每一个被审计的操作都会生成一条audit trail。
by session 一个会话里面同类型的操作只会生成一条audit trail,默认为by session。
whenever [not] successful:
whenever successful 操作成功(dba_audit_trail中returncode字段为0) 才审计,
whenever not successful 反之。省略该子句的话,不管操作成功与否都会审计。
•细粒度的审计
–从Oracle9i开始,通过引入细粒度的对象审计,或称为FGA,审计变得更为关注某个方面,并且更为精确。
–使用标准的审计,可以轻松发现访问了哪些对象以及由谁访问,但无法知道访问了哪些行或列。
–细粒度的审计可解决这个问题,它不仅为需要访问的行指定谓词(或where子句),还指定了表中访问的列。
–通过只在访问某些行和列时审计对表的访问,可以极大地减少审计表条目的数量。
–以使用数据字典视图DBA_FGA_AUDIT_TRAIL访问细粒度审计的审计记录。(默认只有SYS有权查看)
–程序包DBMS_FGA具有4个过程(ADD_POLICY、DROP_POLICY、DISABLE_POLICY、ENABLE_POLICY)
•注意
–Oracle在9i 10g 有安全漏洞, 如果SYS用户登录后操作,审计将失效!( BUGTRAQ ID: 13510)
–所以测试时请用其他用户登录,如SCOTT;DBMS_FGA默认只有用户有执行权,建立审计规则时还需用SYS登录。
•参见: http://blog.chinaunix.net/u2/66903/showart_2082884.html
cmd>sqlplus sys/sys as sysdba
SQL> show parameter audit_trail
NAME &
相关文档:
select t.OSUSER,t.STATUS,t.LOGON_TIME from v$session t
select t.OSUSER,t.STATUS,t.LOGON_TIME from v$session t where t.OSUSER='admin'
select t.OSUSER,t.STATUS,t.LOGON_TIME from v$session t where t.OSUSER='liuzhaoqing'
select t.OSUSER,t.STATUS,t.LOGON_TIME from v$session t where t.OSUSER='ymx'
sel ......
查询星期几:
select to_char(sysdate,'day') from dual;
查询几号:
select to_char(sysdate,'dd') from dual;
查询小时数:
select to_char(sysdate,'hh24') from dual;
查询时间:
select to_char(sysdate,'hh24:mi:ss') from dual;
查询日期时间:
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
查 ......
暨上通过预编译阐述道共享池最后到SGA,这里进一步说明一下SGA中另一个大块,数据缓冲区。
首先了解下SGA种大致有那些东西,这些东西随着数据库版本的增加会有所增加,不过大致上应该一致,这也是基本所有的体系结构都会描述的东西: ......