重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
据我所知,要审计alter、trace文件,没有办法,但是楼主可以开启sql trace,然后使用tkprof查看跟踪文件。
创新互联公司是一家集网站建设,将乐企业网站建设,将乐品牌网站建设,网站定制,将乐网站建设报价,网络营销,网络优化,将乐网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
查看alert,trace等ORACLE日志,只要把这些个日志文件打开看就知道了,要是审计干什么。审计是记录数据库的操作,但是alert,trace等文件也是记录数据库的操作信息和运行信息。
应该没有必要吧
在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.
sqlplus "/ as sysdba"
show parameter audit
alter system set audit_sys_operations=TRUE scope=spfile;
alter system set audit_trail=DB scope=spfile;
shutdown immediate;
startup force;
Oracle 11g起audit是自动开启的。我很烦这个审计开启,审计日志半个月10G,烦烦烦。我一把都关闭Oracle的审计功能,提高Oracle的空闲率。
1、什么是审计
审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计跟踪结果存放到OS文件(默认位置为$ ORACLE_BASE/admin/$ORACLE_SID/adump/)或数据库(存储在system表空间中的SYS.AUD$表中,可通过视图 dba_audit_trail查看)中。默认情况下审计是没有开启的。
不管你是否打开数据库的审计功能,以下这些操作系统会强制记录:用管理员权限连接Instance;启动数据库;关闭数据库。
2、和审计相关的两个主要参数
Audit_sys_operations:
默认为false,当设置为true时,所有sys用户(包括以sysdba,sysoper身份登录的用户)的操作都会被记录,audit trail不会写在aud$表中,这个很好理解,如果数据库还未启动aud$不可用,那么像conn /as sysdba这样的连接信息,只能记录在其它地方。如果是windows平台,audti trail会记录在windows的事件管理中,如果是linux/unix平台则会记录在audit_file_dest参数指定的文件中。
Audit_trail:
None:是默认值,不做审计;
DB:将audit trail 记录在数据库的审计相关表中,如aud$,审计的结果只有连接信息;
DB,Extended:这样审计结果里面除了连接信息还包含了当时执行的具体语句;
OS:将audit trail 记录在操作系统文件中,文件名由audit_file_dest参数指定;
XML:10g里新增的。
注:这两个参数是static参数,需要重新启动数据库才能生效。
3、审计级别
当开启审计功能后,可在三个级别对数据库进行审计:Statement(语句)、Privilege(权限)、object(对象)。
Statement:
按语句来审计,比如audit table 会审计数据库中所有的create table,drop table,truncate table语句,alter session by cmy会审计cmy用户所有的数据库连接。
Privilege:
按权限来审计,当用户使用了该权限则被审计,如执行grant select any table to a,当执行了audit select any table语句后,当用户a 访问了用户b的表时(如select * from b.t)会用到select any table权限,故会被审计。注意用户是自己表的所有者,所以用户访问自己的表不会被审计。
Object:
按对象审计,只审计on关键字指定对象的相关操作,如aduit alter,delete,drop,insert on cmy.t by scott; 这里会对cmy用户的t表进行审计,但同时使用了by子句,所以只会对scott用户发起的操作进行审计。注意Oracle没有提供对schema中所有对象的审计功能,只能一个一个对象审计,对于后面创建的对象,Oracle则提供on default子句来实现自动审计,比如执行audit drop on default by access;后,对于随后创建的对象的drop操作都会审计。但这个default会对之后创建的所有数据库对象有效,似乎没办法指定只对某个用户创建的对象有效,想比 trigger可以对schema的DDL进行“审计”,这个功能稍显不足。
oracle 审计功能怎么配置
审计是对选定的使用者动作的监控和记录,通常用于:
u 审查可疑的活动。例如:资料被非授权使用者所删除,此时安全管理员可决定对该 资料库的所有连线进行审计,以及对资料库的所有表的成功地或不成功地删除进行审计。
u 监视和收集关于指定资料库活动的资料。例如:DBA可收集哪些被修改、执行了多少次逻辑的I/O等统计资料。
ORACLE支援三种审计型别:
u 语句审计,对某种型别的SQL语句审计,不指定结构或物件。
u 特权审计,对执行相应动作的系统特权的使用审计。
u 物件审计,对一特殊模式物件上的指定语句的审计。
ORACLE所允许的审计选择限于下列方面:
u 审计语句的成功执行、不成功执行,或者其两者。
u 对每一使用者会话审计语句执行一次或者对语句每次执行审计一次。
u 对全部使用者或指定使用者的活动的审计。
当资料库的审计是使能的,在语句执行阶段产生审计记录。审计记录包含有审计的操作、使用者执行的操作、操作的日期和时间等资讯。审计记录可存在资料字典表(称为审计记录)或作业系统审计记录中。资料库审计记录是在SYS模式的AUD$表中。
设定ORACLE审计
下列步骤可以设定ORACLE的审计功能:
1. 修改引数档案(init.ora,如果使用伺服器引数档案使用alter system set = scope=spfile|both,详情参照1.1节中关于引数档案的介绍),设定 AUDIT_TRAIL引数,并且重启资料库。AUDIT_TRAIL的取值如下:
l DB/TRUE:启动审计功能,并且把审计结果存放在资料库的 SYS.AUD$ 表中
l OS:启动审计功能,并把审计结果存放在作业系统的审计资讯中
l DB_EXTENDED:具有DB/TRUE的功能,另外填写AUD$的SQLBIND和SQLTEXT栏位
l NONE/FALSE:关闭审计功能
2.如果设定 AUDIT_TRAIL = OS, 还需要修改引数AUDIT_FILE_DEST。
如果作业系统支援设定AUDIT_TRAIL=OS,档案会自动存放在AUDIT_FILE
_DEST所指定的目录下,并且档名包含程序的PID。
比如:
AUDIT_FILE_DEST = $ORACLE_HOME/rdbms/audit
$ ls -l $ORACLE_HOME/rdbms/audit
-rw-rw---- 1 ora92 dba 881 Mar 17 09:57 ora_13264.aud
$ ps -ef|grep 13264
ora92 13264 13235 0 09:56:43 ? 0:00 oracleV92 (DESCRIPTION=(LOCAL=Y)
SQL select spid, program, username from v$process;
SPID PROGRAM USERNAME
------ -------------------------------------------- -------------
...
13264 oracle@frhp11 (TNS V1-V3) ora92
注意:WINDOWS NT不使用AUDIT_FILE_DEST引数,如果使用OS设定,那么审计资讯会存放在WINDOWS NT的事件日志里。下面的章节会有专门的介绍。
3. 确认审计相关的表是否已经安装
SQLPLUS connect / AS SYSDBA
SQLPLUS select * from sys.aud$; -- 没有记录返回
SQLPLUS select * from dba_audit_trail; -- 没有记录返回
如果做上述查询的时候发现表不存在,说明审计相关的表还没有安装,需要安装。
SQLPLUS connect / as sysdba
SQLPLUS @$ORACLE_HOME/rdbms/admin/cataudit.sql
审计表安装在SYSTEM表空间。所以要确保SYSTEM表空间又足够的空间存放审计资讯。
4. 关闭并重启资料库
5. 设定所需要的审计资讯
下面是一个例子
SQL connect system/manager
SQL grant audit system to scott;
SQL connect scott/tiger
SQL audit session;
停止审计:
SQL noaudit session;
设定审计的例项:对试图尝试口令的访问的审计
本节讨论的是一个审计的例项,用于记录尝试通过野蛮尝试法破译ORACLE帐号口令的例子:
1. 修改审计相关引数(参照上一节介绍的方法)
2. 重启资料库
3. 设定审计资讯
SQLAUDIT ALL BY ACCESS WHENEVER NOT SUCCESSFUL
4. 查询AUD$
SQL select returncode, action#, userid, userhost, terminal,timestamp
from aud$
RETURNCODE ACTION# USERID USERHOST TERMINAL
---------- ---------- -------- -------------------- --------------------
1017 100 SCOTT WPRATA-BR
1017 100 SCOTT WPRATA-BR
1017 100 SCOTT WPRATA-BR
ORA-1017的含义为错误的使用者名称口令。通过检视AUD$表可以清楚地看到WPRATA-BR尝试破译SCOTT的口令。可以通过下面一个储存过程来分析AUD$表,找出可疑的资讯:
create or replace procedure AuditLogin(Since Varchar2,Times PLS_Integer)
is
USER_ID VARCHAR2(20);
cursor c1 is select userid,count(*) from sys.aud$ where returncode='1017' and timestamp#=to_date(Since,'yyyy-mm-dd')
group by userid;
cursor C2 IS Select userhost, terminal,TO_CHAR(timestamp#,'YYYY-MM-DD:HH24:MI:SS')
from sys.aud$ WHERE returncode='1017' and timestamp#=to_date(Since,'yyyy-mm-dd') AND USERID=USER_ID;
ct PLS_INTEGER;
V_USERHOST VARCHAR2(40);
V_TERMINAL VARCHAR(40);
V_DATE VARCHAR2(40);
BEGIN
OPEN C1;
dbms_output.enable(1024000);
LOOP
FETCH C1 INTO USER_ID,CT;
EXIT WHEN C1%NOTFOUND;
IF(CT=TIMES) THEN
DBMS_OUTPUT.PUT_LINE('USER BROKEN ALARM:'||USER_ID);
OPEN C2;
LOOP
FETCH C2 INTO V_USERhOST,V_TERMINAL,V_DATE;
DBMS_OUTPUT.PUT_LINE(CHR(9)||'HOST:'||V_USERHOST||',TERM:'||V_TERMINAL||',TIME:'||V_DATE);
EXIT WHEN C2%NOTFOUND;
END LOOP;
close c2;
END IF;
END LOOP;
close c1;
END;
/
一下是执行结果:
SQLset serveroutput on;
SQL execute auditlogin('2004-01-01',2);
USER BROKEN ALARM:SYS
HOST:,TERM:XUJI,TIME:2004-09-22:11:08:00
HOST:,TERM:XUJI,TIME:2004-09-22:11:08:01
HOST:,TERM:XUJI,TIME:2004-09-22:11:09:29
HOST:,TERM:XUJI,TIME:2004-09-22:11:09:29
PL/SQL 过程已成功完成。
将审计相关的表移动到其他表空间
由于AUD$表等审计相关的表存放在SYSTEM表空间,因此为了不影响系统的效能,保护SYSTEM表空间,最好把AUD$移动到其他的表空间上。可以使用下面的语句来进行移动:
sqlconnect / as sysdba;
sqlalter table aud$ move tablespace ;
sqlalter index I_aud1 rebuild online tablespace ;
SQL alter table audit$ move tablespace ;
SQL alter index i_audit rebuild online tablespace ;
SQL alter table audit_actions move tablespace ;
SQL alter index i_audit_actions rebuild online tablespace ;
分类: ORACLE
好文要顶 关注我 收藏该文
果然
关注 - 1
粉丝 - 0
+加关注
« 上一篇:[转]oracle审计详解
» 下一篇:oracle中使用者删除不了,ORA-01940提示 “无法删除当前已连线使用者”
posted on 2015-07-31 10:37 果然 阅读(23) 评论(0) 编辑 收藏
重新整理评论重新整理页面返回顶部
注册使用者登入后才能发表评论,请 登入 或 注册,访问网站首页。
【推荐】50万行VC++原始码: 大型组态工控、电力模拟CAD与GIS原始码库
【福利】微软Azure给部落格园的你专属双重好礼
【推荐】融云释出 App 社交化白皮书 IM 提升活跃超 8 倍
【推荐】BPM免费下载
最新IT新闻:
· 新年正能量!他说iPad给予了他一次新生命
· 曝联通2016年终奖取消:集团亏损 只发基本工资
· 罗振宇跨年演讲完整版:2017年小心这5只黑天鹅
· 外媒评出2016年最差电子产品排行榜:三星Note7登顶
· 优必选机器人出新品、搭渠道,将完成20亿元融资
» 更多新闻...
最新知识库文章:
· 写给未来的程式媛
· 高质量的工程程式码为什么难写
· 循序渐进地程式码重构
· 技术的正宗与野路子
· 陈皓:什么是工程师文化?
» 更多知识库文章...
导航
部落格园
首页
联络
订阅
如何配置linux审计功能部署
java不用做任何改动就可以部署到linux系统,java编译成*.class档案只需要虚拟机器的支援,你只要在linux环境下装一个jdk就OK了,然后配置一下环境变数。 然后java的class档案或者打包好的*.jar档案考到linux目录下就可以用了.
怎么检视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是否开启了审计功能
1、语句审计(Statement Auditing)。
对预先指定的某些SQL语句进行审计。这里从SQL语句的角度出发,进行指定。审计只关心执行的语句。
例如,audit CREATE TABLE;命令,就表明对"create table"语句的执行进行记录。 不管这语句是否是针对某个物件的操作
2、许可权审计(Privilege Auditing)
对涉及某些许可权的操作进行审计。这里强调“涉及许可权”
例如,audit CREATE TABLE;命令,又可以表明对涉及“CREATE TABLE”许可权的操作进行审计。
所以说,在这种命令的情况下,既产生一个语句审计,又产生了一个许可权审计。
什么是资料库的审计功能,为什么要提供审计功能
资料库是任何商业和公共安全中最具有战略性的资产,通常都储存着重要的商业伙伴和客户资讯,这些资讯需要被保护起来,以防止竞争者和其他非法者获取。网际网路的急速发展使得企业资料库资讯的价值及可访问性得到了提升,同时,也致使资料库资讯资产面临严峻的挑战,概括起来主要表现在以下三个层面:
1. 管理风险:主要表现为人员的职责、流程有待完善,内部员工的日常操作有待规范,第三方维护人员的操作监控失效等等,离职员工的后门,致使安全事件发生时,无法追溯并定位真实的操作者。
2. 技术风险:Oracle, SQL Server是一个庞大而复杂的系统,安全漏洞如溢位, 注入层出不穷,每一次的CPU(Critical Patch Update)都疲于奔命, 而企业和 *** 处于稳定性考虑,往往对补丁的跟进非常延后,更何况通过应用层的注入攻击使得资料库处于一个无辜受害的状态。
3. 审计层面:现有的依赖于资料库日志档案的审计方法,存在诸多的弊端,比如:资料库审计功能的开启会影响资料库本身的效能、资料库日志档案本身存在被篡改的风险,难于体现审计资讯的有效性和公正性。此外,对于海量资料的挖掘和迅速定位也是任何审计系统必须面对和解决的一个核心问题之一。
伴随着资料库资讯价值以及可访问性提升,使得资料库面对来自内部和外部的安全风险大大增加,如违规越权操作、恶意入侵导致机密资讯窃取泄漏,但事后却无法有效追溯和审计。
sangfor 流量审计功能在哪
恩 你说的是深信服的上网行为管理产品吧,深信服上网行为管理产品的主要功能有:
①识别(就是所有使用者和网站以及应用系统的识别,深信服可以自动识别网站和软体的功能性 比如是娱乐的,办公的还是游戏)
②流控:就是流量控制,既然知道了每个软体都在做什么,就可以对流量的控制,比如对P2P软体的控制,这样就可以保证我们办公的正常执行
③管理:我们可以针对网上的某一软体或网页进行限制或禁止,可以具体到某一软体的流量几K每秒。
④安全:上网行为管理可以对我们的客户电脑进行安全维护就是防止网路病毒和提醒软体漏洞。再就是防止泄密,比如一些QQ泄密和邮件泄密,防止公司的损失。
⑤审计:就是对公司职工上网记录的保留,包括浏览,软体,邮件,聊天记录,等等一切网路行为的保留,以便以后的查取。并且有深信服专利对于SSL的审计。
配置审计包括物理审计 哪些属于功能审计的范畴
B 答案解析: 答案A不正确,事实证据是情况属性; 答案B正确,审计发现和建议要以4个属性为依据。标准是在进行评价或核证时应用的标准、措施或期望值(应该存在什么);情况是内部审计师在检查过程中发现的事实证据(存在什么);原因是预期和实际情况之间存在差异的原因(为什么情况会存在)原因,它是预期和实际情况之间存在差异的原因(为什么情况会存在);效果是由于情况与标准不一致,机构和/或其他部门面临的风险(即差异的影响)效果,它是由于情况与标准不一致,机构和/或其他部门面临的风险(即差异的影响)(实务公告2410-1)。原因提供了回答“为什么”的答案,并且应是纠正措施的依据。 答案C不正确,风险或暴露是效果属性; 答案D不正确,对审计发现和建议的效果的评价是内部审计师的结论。
usg自带的审计功能,怎么才能看到被审计的内容
一、审计所的主要工作内容是:1、审计所的工作是审计资料作出证据蒐集及分析,以评估企业财务状况,然后就资料及一般公认准则之间的相关程度作出结论及报告。2、检讨组织的运作程式及方法以评估其效率及效益;履行审计(遵行审计);评估组织是否遵守由更高权力机构所订的程式、守则或规条。3、对财务报表审计:评估企业或团体的财务报表是否根据公认会计准则编制,一般由独立会计师进行。评估企业或机构的资讯系统的安全性,完整性、系统可靠性及一致性。二、审计所的职能:1、审计所是指由国家授权或接受委托的专职机构和人员成立的,依照国家法规、审计准则和会计理论,运用专门的方法,对被审计单位的财政、财务收支、经营管理活动及其相关资料的真实性、正确性、合规性、合法性、效益性进行审查和监督,评价经济责任,鉴证经济业务,用以维护财经法纪、改善经营管理、提高经济效益的一项独立性的经济监督活动。2、对经济活动和经济现象的认定:经济活动和经济现象是审计的物件,也就是审计的内容。经济活动和经济现象的认定代表着被审单位对本单位经济活动的合法合规性或有效性及经济现象(如会计资料)的真实公允性的一种看法。3、收集和评估证据:证据是审计人员用来确定被审单位经济活动合法合规性或有效性及经济现象真实公允性的各种形式的凭据。收集充分、有力的审计证据是审计工作的核心。从一定意义上说,审计就是有目的、有计划地收集、鉴定、综合和利用审计证据的过程。4、保持其客观性:客观性是指不偏不倚,实事求是,这是对审计人员的职业道德要求。审计人员只有客观地收集和评估证据、作出审计结论、报告审计结果,才能达到审计目标,也才能使审计工作令审计意见的利害关系人信服。5、为其制定审计的标准:所制定的标准是审计的依据,即判断被审单位的经济活动合法合规与否、经济效益如何、经济现象真实公允与否的尺度,如国家颁布的法律、规章和标准,职业团体制定的会计准则(如美国财务会计准则委员会FASB释出的《财务会计准则公告》),企业制定的各种消耗定额、计划、预算等。6、为审计传递结果:向依赖和利用审计意见的组织和人员传递结果是通过编制审计报告进行的。编制审计报告是审计工作的最后步骤。审计报告的格式有些是标准化的,如年度会计报表审计报告;有些则是非标准化的,如职员舞弊专项审计报告。在有些情况下,审计人员甚至还可以采取口头的非正式形式报告审计结果。三、举例1、GE公司是美国最大的产业公司之一,也是世界上最大的电气公司。该公司有12大类产品和服务专案,包括家用电器、广播装置、航空机械、科技新产品开发、销售服务等。2、GE每年都会进行由审计所进行的外部审计,其工作过程是:(1)在审计工作开始之前,审计小组要做的工作是了解和研究情况,(2)在审计中,审计小组对整个审计工作负有全权,召开调查会、进行个别谈话、收集情况和资料等活动都由他们自主安排。在这之后是分析情况、理清头绪,衡量各种问题间的相互影响。为了实现审计目标,他们可以做他们认为需要做的任何工作,目的只有一个:找出问题的解决方案。(3)即便找到了解决法,事情也远未结束。实施方案的具体建议一般由审计小组提出,而且他们总是要把新方案变成一种日常工作,具体落实后才肯罢手,以便在他们离开后能够坚持下去。在这一过程中,审计小组要与被审计部门的领导和业务人员打无数次交道。(4)审计所根据审计目标和程式,出具审计报告。
oracle 行级触发器可以用于审计功能吗
sqlplus "/ as sysdba"
show parameter audit
alter system set audit_sys_operations=TRUE scope=spfile;
alter system set audit_trail=DB scope=spfile;
shutdown immediate;
startup force;
Oracle 11g起audit是自动开启的。我很烦这个审计开启,审计日志半个月10G,烦烦烦。我一把都关闭Oracle的审计功能,提高Oracle的空闲率。
查询SQL审计功能是否开启
mysql伺服器自身没有提供审计功能,但是我们可以使用init-connect+binlog的方法进行mysql的操作审计。由于mysqlbinlog记录了所有对资料库长生实际修改的sql语句,及其执行时间,和connection_id但是却没有记录connection_id对应的详细使用者资讯。在后期审计进行行为追踪时,根据binlog记录的行为及对应的connection-id结合之前连线日志记录进行分析,得出最后的结论。1.设定init-connect1.1建立用于存放连线日志的资料库和表createdatabaseaesslog;CREATETABLEaesslog.aesslog(`id`int(11)primarykeyauto_increment,`time`timestamp,`localname`varchar(30),`matchname`varchar(30))1.2建立使用者许可权可用现成的root使用者用于资讯的读取grantselectonaesslog.*toroot;如果存在具有to*.*许可权的使用者需要进行限制。这里还需要注意使用者必须对aesslog表具有insert许可权grantselectonaesslog.*touser@’%’;1.3设定init-connect在[mysqld]下新增以下设定:init-connect=’insertintoaesslog.aesslog(id,time,localname,matchname)values(connection_id(),now(),user(),current_user());’------注意user()和current_user()的区别log-bin=xxx这里必须开启binlog1.4重启资料库生效shell/etc/init.d/mysqlrestart2.记录追踪2.1thread_id确认可以用以下语句定位语句执行人Tencent:~#mysqlbinlog--start-datetime='2011-01-2616:00:00'--s-datetime='2011-01-2617:00:00'/var/lib/mysql/mysql-bin.000010|grep-B5'wsj'COMMIT/*!*/;#at767#11012616:16:43serverid1end_log_pos872Querythread_id=19exec_time=0error_code=0usetest/*!*/;SETTIMESTAMP=1296029803/*!*/;createtablewsj(idintunsignednotnull)--BEGIN/*!*/;#at940#11012616:16:57serverid1end_log_pos1033Querythread_id=19exec_time=0error_code=0SETTIMESTAMP=1296029817/*!*/;insertintowsj(id)values(1)--BEGIN/*!*/;#at1128#11012616:16:58serverid1end_log_pos1221Querythread_id=19exec_time=0error_code=0SETTIMESTAMP=1296029818/*!*/;insertintowsj(id)values(2)2.2使用者确认thread_id确认以后,找到元凶就只是一条sql语句的问题了。mysqlselect*fromaesslogwhereid=19;+----+---------------------+---------------------+-----------+|id|time|localname|matchname|+----+---------------------+---------------------+-----------+|19|2011-01-2616:15:54|test@10.163.164.216|test@%|+----+---------------------+---------------------+-----------+1rowinset(0.00sec)
审计的作用 .审查可疑的活动 .监视和收集关于指定数据库活动的数据 审计的类型 .语句审计(STATEMENT AUDITING) .权限审计(PRIVILEGE AUDITING) .对象审计(OBJECT AUDITING) 审计的信息 AUD$表记录的审计信息包括 SESSIONID 会话的数字ID ENTRYID 审计信息项的ID STATEMENT 每个执行的命令的数字ID TIMESTAP# 设计信息生成的日期和时间 USERID 被审计的用户使用的Oracle用户ID USERHOST 被审计的用户使用的数据库例程的数字ID TERMINAL 被审计的用户的操作系统终端描述字 ACTION# 被审计的操作的标识 RETURNCODE 每个被审计的命令执行后的返回代码 若为 表明操作成功 OBJ$CREATOR 被一个操作影响到的对象的创建者(对操作审计) OBJ$NAME 被一个操作影响到的对象的名称(对操作审计) AUTH$PRIVILEGES 使用的系统权限 AUTH$GRANTEE 使用的对象权限 NEW$OWNER 在列NEW_NAME中命名的对象的所有者 NEW$NAME 在列NEW_NAME中命名的对象的名称 SES$ACTIONS 会话小结的字符串 记录了不同操作的成功和失败的信息 SES$TID 会话的事务ID LOGOFF$LREAD 在会话中执行的逻辑读个数 LOGOFF$PREAD 在会话中执行的物理读个数 LOGOFF$LWRITE 在会话中执行的逻辑写个数 LOGOFF$DEAD 在会话中检测到的死锁个数 LOGOFF$TIME 用户退出系统的日期和时间 MENT$TEXT 对设计信息项的文本注释 CLIENTID 客户机ID SPARE 备用 SPARE 备用 OBJ$LABEL 与对象关联的标签 SES$LABEL 与会话关联的标签 PRIV$USED 执行操作的系统权限 SESSIONCPU 会话占用的CPU时间 审计的启动如图 所示的编辑数据库配置的【所有参数】选项卡 审计的实例( )以SYSTEM用户登录【SQLPlus Worksheet】 执行如下SQL代码 执行结果如图 所示 ―――――――――――――――――――――――――――――――――――――AUDIT SESSION;―――――――――――――――――――――――――――――――――――――【参见光盘文件】 第 章\auditsession sql ( )以SCOTT用户登录另外一个【SQLPlus Worksheet】 ( )查询AUD$表的内容 主要的审计信息如下 ―――――――――――――――――――――――――――――――――――――SESSIONID ENTRI\YID STATEMENT TIMESTAMP# 二月 : : AMUSERID SCOTTTERMINAL MYNETSERVERACTION# RETURNCODE MENT$TEXT Authenticated by: DATABASE; Client address:ADDRESS=(PROTOCOL=tcp)(HOST= )(PORT= ))SPARE MYNETSERVER\AdministratorPRIV$USED ――――――――――――――――――――――――――――――――――――― lishixinzhi/Article/program/Oracle/201311/17938