查看: 6008|回复: 21

除了audit以外,还有其他方法来监控sql是哪些用户执行的?

[复制链接]
论坛徽章:
3
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
跳转到指定楼层
1#
发表于 2006-6-23 16:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
除了audit以外,还有其他方法来监控sql是哪些用户执行的?
论坛徽章:
7
参与2007年甲骨文全球大会(中国上海)纪念
日期:2007-08-06 15:19:02会员2007贡献徽章
日期:2007-09-26 18:42:10生肖徽章2007版:鸡
日期:2008-01-02 17:35:532010数据库技术大会纪念徽章
日期:2010-05-13 09:34:23
2#
发表于 2006-6-23 16:16 | 只看该作者
triger

使用道具 举报

回复
论坛徽章:
52
ITPUB元老
日期:2006-02-14 08:33:40现任管理团队成员
日期:2011-05-07 01:45:08
3#
发表于 2006-6-23 16:42 | 只看该作者

Re: 除了audit以外,还有其他方法来监控sql是哪些用户执行的?

最初由 ahlu 发布
[B]除了audit以外,还有其他方法来监控sql是哪些用户执行的? [/B]


实话实说,Oracle这方面的功能真是很弱的,audit只能简单的记录一下在某个时点一个用户执行哪种操作了,或用到什么真的权限了等,但整个该用户的语句是没有的。所以是一个很弱的audit。

triger倒是可以完成一定的功能,但总不会对每个object都加一个triger吧,同时对于负载很大的系统这也是一个性能的问题。

用logminer分析归档日志是一个方法,但以logminer的速度如果系统不大还是可以考虑的,还要要求你的系统是开归档的。

个人认为理想的状态应该是这样的:可以在audit上加上一个特别的选项,打开这个选项,并做适当的配置后,被audit用户的所有语句或部分类别的语句可以被记录在某个表中。期待着Oracle的改善吧。

最近这半年被内控折磨着,相信这波及了IT界的大部分人士。我目前对后台要做dml操作的监测的做法是:用的时侯开放一个专门的用户,对相关的session做10046。

使用道具 举报

回复
论坛徽章:
112
2008新春纪念徽章
日期:2008-02-13 12:43:03马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14马上有车
日期:2014-11-03 12:40:39沸羊羊
日期:2015-03-04 14:43:432015年新春福章
日期:2015-03-06 11:57:31慢羊羊
日期:2015-03-09 16:15:39
4#
发表于 2006-6-23 16:55 | 只看该作者
市场上有专门的监控软件。不过要花银子的。

对关键业务表, 比如DML操作较少的字典信息表,最方便的就是用个trigger了。实现起来容易些!

用logminer太不方便了,经常是当错误发现时,归档已经转移到磁带上了,分析起来太麻烦了!

使用道具 举报

回复
论坛徽章:
15
祖国60周年纪念徽章
日期:2009-10-09 08:28:002009架构师大会纪念徽章
日期:2010-01-18 13:43:21ITPUB十周年纪念徽章
日期:2011-11-01 16:20:28
5#
发表于 2006-6-23 16:56 | 只看该作者

Re: Re: 除了audit以外,还有其他方法来监控sql是哪些用户执行的?

最初由 hrb_qiuyb 发布
[B]

实话实说,Oracle这方面的功能真是很弱的,audit只能简单的记录一下在某个时点一个用户执行哪种操作了,或用到什么真的权限了等,但整个该用户的语句是没有的。所以是一个很弱的audit。

triger倒是可以完成一定的功能,但总不会对每个object都加一个triger吧,同时对于负载很大的系统这也是一个性能的问题。

用logminer分析归档日志是一个方法,但以logminer的速度如果系统不大还是可以考虑的,还要要求你的系统是开归档的。

个人认为理想的状态应该是这样的:可以在audit上加上一个特别的选项,打开这个选项,并做适当的配置后,被audit用户的所有语句或部分类别的语句可以被记录在某个表中。期待着Oracle的改善吧。

最近这半年被内控折磨着,相信这波及了IT界的大部分人士。我目前对后台要做dml操作的监测的做法是:用的时侯开放一个专门的用户,对相关的session做10046。 [/B]



sox

使用道具 举报

回复
论坛徽章:
3
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
6#
 楼主| 发表于 2006-6-23 17:03 | 只看该作者

呵呵,大家都遇到这个问题!

我要监控的是应用帐户,所以audit的可能性不大,量太大了,又不能对v$session做trigger,比较难啊!如果能找到v$sql和v$session之间的关系,通过定时查询记录也可起到监控作用,但是v$session中的sql_address只记录当前的sql,如update后commit,他只记录commit,而update语句就被覆盖了,这样也没有什么意义了,而v$sql又不能显示该sql最近谁再用,埃...

使用道具 举报

回复
论坛徽章:
3
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
7#
 楼主| 发表于 2006-6-23 17:11 | 只看该作者

Logmnr并不能记录sql是谁操作的,而且logmnr中相关sql的语句形式也改变了

trigger记录相关表,但如何记录对该条数据操作的具体session呢?我们现在的问题是,防止其他人盗用别人帐户对数据库进行操作,所以要通过v$session来记录主机名等信息

使用道具 举报

回复
论坛徽章:
3
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
8#
 楼主| 发表于 2006-6-23 17:19 | 只看该作者

Toms_zhang

能具体推荐一个专门的监控软件吗?

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
9#
发表于 2006-6-23 18:31 | 只看该作者
可以写一个系统的triger

使用道具 举报

回复
论坛徽章:
16
ITPUB元老
日期:2006-12-29 17:11:00秀才
日期:2015-12-25 15:31:102015年新春福章
日期:2015-03-06 11:57:31沸羊羊
日期:2015-03-04 14:43:432012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412010新春纪念徽章
日期:2010-03-01 11:21:02祖国60周年纪念徽章
日期:2009-10-09 08:28:002009新春纪念徽章
日期:2009-01-04 14:52:28生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
10#
发表于 2006-6-23 18:37 | 只看该作者
不太好实现,监控软件也有缺陷

使用道具 举报

回复

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

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表