如何审计Oracle数据库中表操作
1 、如何启用审计?
成都创新互联主要从事成都网站建设、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务那坡,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
修改数据库的初始化参数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='*';
注意,这个参数需要数据库实例重启之后才能生效。
2 、审计有哪些功能
可以审计数据库对象的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 ] ;
3 、如何审计某表的数据插入操作
现在的问题是找出什么应用向表插入了记录。在应用程序的逻辑上,这个表的数据只会更新,不会插入。
因此,在审计功能打开后,使用这个下列命令审计某表的插入操作。
audit insert on table_name by access;
执行成功后,此表上每一次插入操作都会被记录在sys.aud$ 表中。
4 、如何查看审计结果
可以查询dba_audit_trail 系统视图,该视图显示就是sys.aud$ 表保存的审计结果。这个表的存储空间是system ,如果你需要大量长期审计某些操作,请注意维护这张表。
一般维护方法有两个,定期执行truncate 操作和将表的存储表空间移植到一个新建的独立表空间上。
5 、如何取消审计
使用noaudit 代替audit 命令符就可, 如noaudit insert on table_name by access;
oracle数据库的审计功能
在oracle11g中,数据库的审计功能是默认开启的(这和oracle10g的不一样,10g默认是关闭的),
oracle11gr2的官方文档上写的是错的,当上说default是none,而且是审计到db级别的,这样就会
往aud$表里记录统计信息。
1.如果审计不是必须的,可以关掉审计功能;
sql
show
parameter
audit_trail;
name
type
value
------------------------------------
-----------
------------------------------
audit_trail
string
db
sql
alter
system
set
audit_trail=none
scope=spfile;
sql
shut
immediate;
sqlstartup
2.删除已有的审计信息
可以直接truncate表aud$,
truncate
table
sys.aud$;
3.或者将aud$表移到另外一个表空间下,以减少system表空间的压力和被撑爆的风险。
附:11g中有关audit_trail参数的设置说明:
audit_trail
property
description
parameter
type
string
syntax
audit_trail
=
{
none
|
os
|
db
[,
extended]
|
xml
[,
extended]
}
default
value
none
modifiable
no
basic
no
audit_trail
enables
or
disables
database
auditing.
values:
none
disables
standard
auditing.
this
value
is
the
default
if
the
audit_trail
parameter
was
not
set
in
the
initialization
parameter
file
or
if
you
created
the
database
using
a
method
other
than
database
configuration
assistant.
if
you
created
the
database
using
database
configuration
assistant,
then
the
default
is
db.
os
directs
all
audit
records
to
an
operating
system
file.
oracle
recommends
that
you
use
the
os
setting,
particularly
if
you
are
using
an
ultra-secure
database
configuration.
db
directs
audit
records
to
the
database
audit
trail
(the
sys.aud$
table),
except
for
records
that
are
always
written
to
the
operating
system
audit
trail.
use
this
setting
for
a
general
database
for
manageability.
if
the
database
was
started
in
read-only
mode
with
audit_trail
set
to
db,
then
oracle
database
internally
sets
audit_trail
to
os.
check
the
alert
log
for
details.
db,
extended
performs
all
actions
of
audit_trail=db,
and
also
populates
the
sql
bind
and
sql
text
clob-type
columns
of
the
sys.aud$
table,
when
available.
these
two
columns
are
populated
only
when
this
parameter
is
specified.
if
the
database
was
started
in
read-only
mode
with
audit_trail
set
to
db,
extended,
then
oracle
database
internally
sets
audit_trail
to
os.
check
the
alert
log
for
details.
xml
writes
to
the
operating
system
audit
record
file
in
xml
format.
records
all
elements
of
the
auditrecord
node
except
sql_text
and
sql_bind
to
the
operating
system
xml
audit
file.
xml,
extended
performs
all
actions
of
audit_trail=xml,
and
populates
the
sql
bind
and
sql
text
clob-type
columns
of
the
sys.aud$
table,
wherever
possible.
these
columns
are
populated
only
when
this
parameter
is
specified.
you
can
use
the
sql
audit
statement
to
set
auditing
options
regardless
of
the
setting
of
this
parameter.
oracle被删除dbs如何查看操作日志
Oracle日志文件查看方法:
1、以sysdba权限用户登录数据库。
2、执行sql语句:select*fromv$logfile;
3、结果显示即为日志路径:
4、另外还有其他的操作日志可用以下两个sql语句查询:
select*fromv$sql;--(#查看最近所作的操作)select*fromv$sqlarea;--(#查看最近所作的操作)
Oracle日志的查看方法:
SQLselect*fromv$sql(#查看最近所作的操作)
SQLselect*fromv$sqlarea(#查看最近所作的操作)
Oracle数据库的所有更改都记录在日志中,从目前来看,分析Oracle日志的唯一方法就是使用Oracle公司提供的LogMiner来进行,因为原始的日志信息我们根本无法看懂,Oracle8i后续版本中自带了LogMiner,而LogMiner就是让我们看懂日志信息的工具,通过这个工具可以:查明数据库的逻辑更改,侦察并更正用户的误操作,执行事后审计,执行变化分析。
怎么查看windows下的oracle是否开启审计功能
查看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 11g开审计 文件过大怎么管理
Oracle 的审计实在是鸡肋,审计日志增加猛速,而且加大系统负荷,降低系统性能。
依我们在生产系统的作法就是禁用审计,禁用后清除审计日志。
处理方法:
1、查看审计功能是否开启
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
说明:表明审计功能为开启的状态
2、关闭oracle的审计功能
SQL alter system set audit_sys_operations=FALSE scope=spfile;
System altered.
SQL alter system set audit_trail=NONE scope=spfile;
System altered.
3、重启数据库
SQL shutdown immediate;
SQL startup;
4、验证审计是否已经被关闭
SQL show parameter audit;
NAME TYPE VALUE
-------------------- ------- --------------------------------
audit_file_dest string /u01/app/oracle/admin/ORCL/adump
audit_sys_operations boolean FALSE
audit_syslog_level string
audit_trail string NONE
说明:表明审计功能为关闭的状态
5、清空审计表数据
SQL truncate table SYS.AUD$;
当前标题:如何查看oracle审计,查看oracle审计是否开启
分享URL:http://scgulin.cn/article/hsihpe.html