2010-05-21 31 views
6

我正在寻找一个可以监视数据库(mysql和oracle)进行更改的工具。免费工具来观看数据库的变化?

当有人插入或更新任何(或选定)表中的内容时,我想了解它。与其他人一起工作,在数据库中做一些神奇的代码可能会非常有用。

我知道它可以使用触发器(see this question)完成,但我更感兴趣的是一些可以做到的东西,一些免费的东西。

+0

为什么你不能使用触发器?这就是为什么有那里和内置。 – Oded 2010-05-21 08:29:12

+0

,因为我希望它是通用的,我可能没有权限在生产数据库上创建触发器。 – IAdapter 2010-05-21 08:33:55

回答

1

并不完全确定这是否是你之后的事情,但MySQL的JetProfiler,这将让你检查数据库上发生了什么,查询明智。我很肯定有相当于甲骨文...

+0

我会看看它,谢谢。 – IAdapter 2010-05-21 09:04:19

1

也许你可以快速编写自己的工具。我将从一个简单的工具开始,该工具可以导出CSV文件关于每个表的基本数据以供比较:行数(即选择计数(*)),主键和具有最后修改日期的字段(如果可用)。然后,您可以不时在最新的CSV和以前的CSV之间进行区分。

但我不确定这是否可行 - 这取决于数据库中的数据量。

+0

即时通讯考虑它,但也许有东西在那里:)但你说得对,应该使用一些范围,因为可以有很多数据。 – IAdapter 2010-05-21 09:03:37

+0

+1这个问题寻找通用解决方案,这是普遍的 – Unreason 2010-05-21 09:17:34

1

如果您希望验证第三方对数据库的访问,那么在某些受控环境下查看日志(在mysql/oracle中启用日志记录)应该可以帮助您测试第三方程序

作为比较的替代方案也应该工作。

如果要审核第三方更改数据,在数据的有效性方面,那么你就应该使它与您的业务规则和它陷入应用层面(如审计过程将在很大程度上取决于你的数据结构;只看通用格式差异不会很有效)。

您可以检查TOAD(Data Diff Viewer)。

另外你应该问自己,为什么你让第三方访问你的数据库的方式是不受控制的,但是事后才被动地检查?理想的情况是,外部接口在处理对系统的输入时定义并执行完整性规则和业务规则的所有验证。

+0

它不是真正的第三方只是其他团队使用相同的数据库,我更容易看数据,以了解他们在做什么。我会尝试你的建议。 – IAdapter 2010-05-21 14:20:56

相关问题