视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Oracle中开启某张表的审计(audit)
2020-11-09 12:39:05 责编:小采
文档


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(x)

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;

本文永久更新链接地址:

下载本文
显示全文
专题