①. 、如何启用审计?
修改数据库的初始化参数audit_trail ,从none 修改为你需要的值.
它的可选项有很多,如下所示:
AUDIT_TRAIL = { none | os | db | db,extended | xml | xml,extended }
我们选择db 值作为该参数值.使得审计功能处于打开状态,将审计记录保存在数据库sys.aud$表中.
修改初始化参数文件spfile 中的此参数配置值
ALTER SYSTEM SET audit_trail=db SCOPE=SPFILE sid='*';
注意,这个参数需要数据库实例重启之后才能生效.
可以审计数据库对象的DML 和DDL 操作,以及查询、执行和一些系统事件如登录和退出.
如下所示:
DDL (CREATE, ALTER DROP of objects)
DML (INSERT UPDATE, DELETE)
SELECT
EXECUTE
SYSTEM EVENTS (LOGON, LOGOFF etc)
每个功能还有选项,如在每个会话还是每个访问中审计,是成功或不成功时审计.
完整的audit 的语法如下:
AUDIT
{ sql_statement_clause | schema_object_clause | NETWORK }
[ BY { SESSION | ACCESS } ]
[ WHENEVER [ NOT ] SUCCESSFUL ] ;
现在的问题是找出什么应用向表插入了记录.在应用程序的逻辑上,这个表的数据只会更新,不会插入.
所以呢,在审计功能打开后,使用这个下列命令审计某表的插入操作.
audit insert on table_name by access;
执行成功后,此表上每一次插入操作都会被记录在sys.aud$ 表中.
可以查询dba_audit_trail 系统视图,该视图显示就是sys.aud$ 表保存的审计结果.这个表的存储空间是system ,如果你需要大量长期审计某些操作,请注意维护这张表.
一般维护方法有两个,定期执行truncate 操作和将表的存储表空间移植到一个新建的独立表空间上.
使用noaudit 代替audit 命令符就可, 如noaudit insert on table_name by access;
在oracle11g中,数据库的审计功能是默认开启的(这和oracle10g的不一样,10g默认是关闭的),
往aud$表里记录统计信息.
①如果审计不是必须的,可以关掉审计功能;
sql
show
parameter
audit_trail;
name
type
value
------------------------------------
-----------
------------------------------
audit_trail
string
db
alter
system
set
audit_trail=none
scope=spfile;
shut
immediate;
sqlstartup
可以直接truncate表aud$,
truncate
table
sys.aud$;
附:11g中有关audit_trail参数的设置说明:
property
description
syntax
=
{
none
|
os
[,
extended]
xml
}
default
modifiable
no
basic
enables
or
disables
database
auditing.
values:
standard
this
is
the
if
was
not
in
initialization
file
you
created
using
a
method
other
than
configuration
assistant.
assistant,
then
db.
directs
all
audit
records
to
an
operating
file.
oracle
recommends
that
use
setting,
particularly
are
ultra-secure
configuration.
trail
(the
sys.aud$
table),
except
for
always
written
trail.
setting
general
manageability.
started
read-only
mode
with
db,
internally
sets
os.
check
alert
log
details.
extended
performs
actions
of
audit_trail=db,
and
also
populates
bind
text
clob-type
columns
table,
when
available.
these
two
populated
only
specified.
extended,
writes
record
format.
elements
auditrecord
node
sql_text
sql_bind
xml,
audit_trail=xml,
wherever
possible.
can
statement
auditing
options
regardless
parameter.
Oracle日志文件查看方法:
①.、以sysdba权限用户登录数据库.
select*fromv$sql;--(#查看最近所作的操作)select*fromv$sqlarea;--(#查看最近所作的操作)
Oracle日志的查看方法:
SQLselect*fromv$sql(#查看最近所作的操作)
SQLselect*fromv$sqlarea(#查看最近所作的操作)
查看aud$表(或者dba_audit_trial视图)中是否有数据,如果有数据说明审计功能开启的
select * from aud$;
select * from dba_audit_trial;
查看系统开启了那些审计功能
select * from dba_priv_audit_opts;系统权限审计
select * from dba_obj_audit_opts; 对象权限审计
Oracle 的审计实在是鸡肋,审计日志增加猛速,而且加大系统负荷,降低系统性能.
依我们在生产系统的作法就是禁用审计,禁用后清除审计日志.
处理方法:
①.、查看审计功能是否开启
sqlplus?"/as?sysdba"
SQL?show?parameter?audit;
NAME??TYPE?VALUE
--------------------??-------?--------------------------------
audit_file_dest??string?/u01/app/oracle/admin/ORCL/adump
audit_sys_operations?boolean?TRUE
audit_syslog_level?string
audit_trail??string?DB
说明:表明审计功能为开启的状态
SQL?alter?system?set?audit_sys_operations=FALSE?scope=spfile;
System?altered.
SQL?alter?system?set?audit_trail=NONE?scope=spfile;
SQL?shutdown?immediate;
SQL?startup;
audit_sys_operations?boolean?FALSE
audit_trail??string?NONE
说明:表明审计功能为关闭的状态
SQL?truncate?table?SYS.AUD$;
以上就是土嘎嘎小编为大家整理的如何查看oracle审计相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!