您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Oracle中开启某张表的审计(audit)

2024/3/14 19:36:53发布24次查看
oracle数据库通过audit_trail参数来开启标准审计,os:说明审计信息放在系统汇总,如果是linux那么由audit_file_dest 决定,如果
oracle数据库通过audit_trail参数来开启标准审计
它的参数有下面几种
none:不开启审计
os:说明审计信息放在系统汇总,如果是linux那么由audit_file_dest 决定,如果是windows 那么由事件查看器决定
db 或 true :表示审计信息存放在数据库里,,也就是sys 用户的aud$ 表。
审计范围分为session 和 access两种
session:表示用户登录之后执行的相同sql只记录一次,其他相同sql不再记录;
access:表示每次执行的sql都进行审计记录。
1、开启审计参数
sql> alter system set audit_trail=db_extended scope=spfile sid='*';
2、重启数据库
为了使参数生效
su - oracle
$ srvctl stop database -d orcl
$ srvctl start database -d orcl
sql> show parameter audit;
3、设置对表进行审计
这样每次有用户对表进行操作,那么都会有相应的记录被添加到aud$中,而oracle为了方便读取数据,创建了视图。
虽然会记录每个用户对表的操作,但是不会记录sys用户的操作,其他所有用户都会做记录。
sql> audit all on scott.emp by access;
设置之后如果想要看到效果,可以用scott用户登录进来对表进行操作。
--------------------------------------分割线 --------------------------------------
在centos 6.4下安装oracle 11gr2(x64)
oracle 11gr2 在vmware虚拟机中安装步骤
debian 下 安装 oracle 11g xe r2
--------------------------------------分割线 --------------------------------------
4、查询审计记录
$ su - oracle
$ sqlplus / as sysdba
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
col os_username for a10
col username for a11
col userhost for a10
col terminal for a10
col timestamp for a20
col obj_name for a10
col owner for a10
col action_name for a11
col transactionid for a16
col sql_text for a30
select username,userhost,timestamp,owner,obj_name,action_name,sql_text from dba_audit_trail;
username 登录的用户
userhost 登录的主机
timestamp 时间戳
owner 操作表的所有者
obj_name 操作的表
action_name 做了什么动作
sql_text 具体的sql
其他:
1、清空aud$
这张系统表是可以使用truncate命令截断的。把它删掉之后那么视图中的记录也就相应消失了。
sql> truncate table aud$;
2、取消某张表的审计
sql> noaudit all on scott.emp;
3、关闭审计
sql> alter system set audit_trail=none;
本文永久更新链接地址:
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product