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 &
相关文档:
ORACLE日期时间函数大全
TO_DATE格式(以时间:2007-11-02 13:45:25为例)
Year:
yy two digits 两位年   ......
视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本身的定义语句还是要存储在数据字典里的。视图只有逻辑定义。每次使用的时候, 只是重新执行SQL.
还有一种视图:物化视图(MATERIALIZED VIEW ),也称实体化视图,快照 (8i 以前的说法) ,它是含有数据的,占用 ......
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 ......
Oracle中使用WMSYS.WM_CONCAT函数进行多行转列
原数据:
rank name
AA NAME1
AA NAME2
AA NAME3
BB NAME4
BB NAME5
SQL>select trim(t.rank) as rank,
&nbs ......
暨上通过预编译阐述道共享池最后到SGA,这里进一步说明一下SGA中另一个大块,数据缓冲区。
首先了解下SGA种大致有那些东西,这些东西随着数据库版本的增加会有所增加,不过大致上应该一致,这也是基本所有的体系结构都会描述的东西: ......