我正在寻找一个可以监视数据库(mysql和oracle)进行更改的工具。免费工具来观看数据库的变化?
当有人插入或更新任何(或选定)表中的内容时,我想了解它。与其他人一起工作,在数据库中做一些神奇的代码可能会非常有用。
我知道它可以使用触发器(see this question)完成,但我更感兴趣的是一些可以做到的东西,一些免费的东西。
我正在寻找一个可以监视数据库(mysql和oracle)进行更改的工具。免费工具来观看数据库的变化?
当有人插入或更新任何(或选定)表中的内容时,我想了解它。与其他人一起工作,在数据库中做一些神奇的代码可能会非常有用。
我知道它可以使用触发器(see this question)完成,但我更感兴趣的是一些可以做到的东西,一些免费的东西。
并不完全确定这是否是你之后的事情,但MySQL的JetProfiler,这将让你检查数据库上发生了什么,查询明智。我很肯定有相当于甲骨文...
我会看看它,谢谢。 – IAdapter 2010-05-21 09:04:19
对于Oracle,您正在查找AUDIT命令。这一个将审计记录写入SYS.AUD $表,您可以监视它。
有关审核声明的更多信息:http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_4007.htm#SQLRF01107
和有关数据库审计:http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/security.htm#sthref2916
问候, 罗布。
如果您希望验证第三方对数据库的访问,那么在某些受控环境下查看日志(在mysql/oracle中启用日志记录)应该可以帮助您测试第三方程序。
作为比较的替代方案也应该工作。
如果要审核第三方更改数据,在数据的有效性方面,那么你就应该使它与您的业务规则和它陷入应用层面(如审计过程将在很大程度上取决于你的数据结构;只看通用格式差异不会很有效)。
您可以检查TOAD(Data Diff Viewer)。
另外你应该问自己,为什么你让第三方访问你的数据库的方式是不受控制的,但是事后才被动地检查?理想的情况是,外部接口在处理对系统的输入时定义并执行完整性规则和业务规则的所有验证。
它不是真正的第三方只是其他团队使用相同的数据库,我更容易看数据,以了解他们在做什么。我会尝试你的建议。 – IAdapter 2010-05-21 14:20:56
为什么你不能使用触发器?这就是为什么有那里和内置。 – Oded 2010-05-21 08:29:12
,因为我希望它是通用的,我可能没有权限在生产数据库上创建触发器。 – IAdapter 2010-05-21 08:33:55