度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 1017|回复: 9
打印 上一主题 下一主题

[分享] 初识ORACLE的审计功能

[复制链接]

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
跳转到指定楼层
楼主
发表于 2020-5-29 14:41:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 陈晓龙 于 2016-7-1 14:29 编辑

顺着这样的思路去学习。

1、审计可以达到怎样的效果?我要来做什么?
2、有分类吗?
3、如何启用审计?数据库一级。
4、如何设定我所需要的审计?针对某个特定的监视目标了。
5、如何看审计的结果?
6、论坛上一些常见的问题,自己认为比较难理解的问题。

一、审计可以达到怎样的效果?
可以记录对数据库对象的所有操作。什么时候,什么用户对什么对象进行了什么类型的操作。
但是无法得知操作的细节,比如到底数据更新成了1还是2?
不过现在新出现的精细审计(Fine grained Auditing),好像也可以记录DML语句了。


二、审计可以分为3类。或者说,可以从3种角度去启用审计。
1、语句审计(Statement Auditing)。
对预先指定的某些SQL语句进行审计。这里从SQL语句的角度出发,进行指定。审计只关心执行的语句。
例如,audit CREATE TABLE;命令,就表明对"create table"语句的执行进行记录。
不管这语句是否是针对某个对象的操作

2、权限审计(Privilege Auditing)
对涉及某些权限的操作进行审计。这里强调“涉及权限”
例如,audit CREATE TABLE;命令,又可以表明对涉及“CREATE TABLE”权限的操作进行审计。
所以说,在这种命令的情况下,既产生一个语句审计,又产生了一个权限审计。
有时候“语句审计”和“权限审计”的相互重复的。这一点可以后面证明。

3、对象审计(Object Auditing)。
记录作用在指定对象上的操作。


三、如何启用审计。
通过数据库初始化参数文件中的AUDIT_TRAIL 初始化参数启用和禁用数据库审计。
DB   启用数据库审计并引导所有审计记录到数据库的审计跟踪
OS   启用数据库审计并引导所有审计记录到操作系统的审计跟踪。可以用AUDIT_FILE_DEST 初始化参数来指定审计文件存储的目录。
NONE 禁用审计这个值是默认值


四、如何设定所需的审计
AUDIT语句。
例如:审计属于用户jward 的dept 表上的所有的SELECT INSERT 和DELETE 语句
AUDIT SELECT, INSERT, DELETE
ON jward.dept;


五、控制何时触发审计动作。
1)By session / By Access
by session对每个session中发生的重复操作只记录一次
by access对每个session中发生的每次操作都记录,而不管是否重复。

2)Whenever successful/ Whenever not successful
Whenever successful表示操作成功以后才记录下来。
Whenever not successful表示操作失败后才记录下来。


六、审计实施
1、语句审计
Audit session;  Audit session By ;
与instance连接的每个会话生成一条审计记录。
审计记录将在连接时期插入并且在断开连接时期进行更新。
保留有关会话的信息比如连接时期断开连接时期处理的逻辑和物理I/O,
以及更多信息将存储在单独一条审计记录中
该审计记录与会话相对应
2、audit delete table


2) 权限审计
Audit DELETE ANY TABLE
by access
whenever not successful;
所有不成功的,使用DELETE ANY TABLE权限进行的操作。

3) 对象审计
AUDIT SELECT, INSERT, DELETE
ON jward.dept
BY ACCESS
WHENEVER SUCCESSFUL;


七、审计结果
1)数据库初始化参数文件中AUDIT_TRAIL=OS时,审计记录存在操作系统的文件中。
UNIX系统的话,默认存在“$oracle_home/rdbms/audit/” 目录下。
If you have set AUDIT_TRAIL = OS, modify the "init.ora" file to specify
the destination for the audited records using the AUDIT_FILE_DEST parameter.
If your operating system supports AUDIT_TRAIL = OS auditing, files are
automatically created in the AUDIT_FILE_DEST for certain actions, and the
generated name contains the OS PID of the shadow process audited:
Example:
AUDIT_FILE_DEST = $ORACLE_HOME/rdbms/audit
b)windows系统的审计信息存储在事件管理器中。
你可以通过控制面板——管理工具——事件查看器——应用程序日志中找到相应的审计记录

2)数据库初始化参数文件中AUDIT_TRAIL=DB时,审计记录存在数据库中。
相关表和视图:
SYS.AUD$              是唯一保留审计结果的表。其它的都是视图。

STMT_AUDIT_OPTION_MAP 包含有关审计选项类型代码的信息由SQL.BSQ 脚本在CREATEDATABASE 的时候创建
AUDIT_ACTIONS         包含对审计跟踪动作类型代码的说明
ALL_DEF_AUDIT_OPTS    包含默认对象审计选项。当创建对象时将应用这些选项

DBA_STMT_AUDIT_OPTS   描述由用户设置的跨系统的当前系统审计选项
DBA_PRIV_AUDIT_OPTS   描述由用户正在审计的跨系统的当前系统权限
DBA_OBJ_AUDIT_OPTS    描述在所有对象上的审计选项
USER_OBJ_AUDIT_OPTS   USER 视图描述当前用户拥有的所有对象上的审计选项

以下是审计记录
DBA_AUDIT_TRAIL       列出所有审计跟踪条目
USER_AUDIT_TRAIL      USER视图显示与当前用户有关的审计跟踪条目

DBA_AUDIT_OBJECT      包含系统中所有对象的审计跟踪记录
USER_AUDIT_ OBJECT    USER 视图列出一些审计跟踪记录而这些记录涉及当前用户可以访问的对象的语句

DBA_AUDIT_SESSION     列出涉及CONNECT 和DISCONNECT 的所有审计跟踪记录
USER_AUDIT_ SESSION   USER视图列出涉及当前用户的CONNECT 和DISCONNECT 的所有审计跟踪记录

DBA_AUDIT_STATEMENT     列出涉及数据库全部的GRANT REVOKE AUDIT NOAUDIT 和ALTER SYSTEM 语句的审计跟踪记录
USER_ AUDIT_ STATEMENT  对于USER 视图来说这些语句应是用户发布的

DBA_AUDIT_EXISTS      列出BY AUDIT NOT EXISTS 产生的审计跟踪条目

下面的视图用于细粒度审计
DBA_AUDIT_POLICIES 显示系统上的所有审计策略
DBA_FGA_AUDIT_TRAIL 列出基于值的审计的审计跟踪记录


八、一些特殊问题
1、有时候“语句审计”和“权限审计”是相互重复的。并不需要明确的区分这2种类型。
主要是考虑你对审计的需求是什么?考虑出发的角度是什么?
例如:
SQL> audit CREATE TABLE;

Audit succeeded

SQL> SELECT * FROM DBA_STMT_AUDIT_OPTS;

AUDIT_OPTION                             SUCCESS    FAILURE
---------------------------------------- ---------- ----------
CREATE TABLE                             BY ACCESS  BY ACCESS

SQL> SELECT * FROM DBA_PRIV_AUDIT_OPTS;

PRIVILEGE                                SUCCESS    FAILURE
---------------------------------------- ---------- ----------
CREATE TABLE                             BY ACCESS  BY ACCESS

以上的一条审计设定命令,生成了两条审计规则。其实最后的结果都是一样。
就是当CREATE TABLE语句执行后,存下审计记录。

2、开启某个用户下所有表的审计
audit table by user_name。据说可以。


九、参考
http://blog.itpub.net/post/468/6806

http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96521/audit.htm#1108

获得应用程序所执行的SQL语句
http://www.softhouse.com.cn/html/200412/2004121608315200002957.html

细粒度审计(FGA)
http://www.itpub.net/showthread.php?s=&threadid=239693&highlight=%C9%F3%BC%C6


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
沙发
发表于 2020-5-30 15:06:04 | 只看该作者
很高端的东西,先收藏

点评

还可以把  详情 回复 发表于 2020-6-1 14:31
回复 支持 反对

使用道具 举报

348

主题

3572

帖子

9255

积分

论坛元老

Rank: 8Rank: 8

积分
9255
板凳
发表于 2020-6-1 02:03:26 | 只看该作者
你牛牛牛
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

348

主题

3572

帖子

9255

积分

论坛元老

Rank: 8Rank: 8

积分
9255
地板
发表于 2020-6-1 02:05:41 | 只看该作者
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
5#
 楼主| 发表于 2020-6-1 14:31:20 | 只看该作者
张兴康 发表于 2016-6-30 15:06
很高端的东西,先收藏

还可以把

点评

还行,就是深奥了点  详情 回复 发表于 2020-6-1 15:06
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
6#
 楼主| 发表于 2020-6-1 14:32:00 | 只看该作者
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
7#
 楼主| 发表于 2020-6-1 14:32:52 | 只看该作者
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
8#
发表于 2020-6-1 15:06:44 | 只看该作者

还行,就是深奥了点

点评

活到老,学到老!  详情 回复 发表于 2020-6-4 15:15
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
9#
 楼主| 发表于 2020-6-4 15:15:28 | 只看该作者
张兴康 发表于 2016-7-1 15:06
还行,就是深奥了点

活到老,学到老!
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
10#
发表于 2020-6-4 16:26:15 | 只看该作者
陈晓龙 发表于 2016-7-4 15:15
活到老,学到老!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-9-29 02:11 , Processed in 0.209041 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表