我们有一个很多人都必须访问的数据库。我正在寻找一种方法,使我们能够在此数据库上发生“更改”时获得通知,以便其他方可以知道它。请指教。
5 回答
许多人不应该对生产数据库拥有 ALTER 权限 - 很少有人应该对生产数据库拥有 ALTER 权限。实际上,您可能也不应该让很多人有权在测试数据库中进行更改。
您可以考虑审计是否是正确的解决方案 - 在某些 DBMS 中,这将是检测更改的一种方式,但警报会更难(除了“grepping the audit log”主题的一些变化)。Oracle中可能还有其他方式。
关于你上面的评论:
它是开发数据库,所以我们需要很多人来访问它。– whizmaven(8 小时前)
@Jonathan Leffler 是正确的:很多人可能可以访问它,但是拥有 DDL 权限(CREATE、DROP、ALTER 等)的人应该非常有限。
更好的解决方案是在本地完成任何此类更改(在本地托管的数据库上,或作为共享测试数据库上的不同用户帐户)。只有在验证更改后,才应将它们推广到完全共享的环境中。并且应该以更正式的方式处理推出/变更控制过程。
至少,在推出时,应使用电子邮件通知更改和这些更改的后果(需要新的测试、更新等)。
改变什么?
ALTER SESSION 可能是一个非常常见的命令(尤其是 ALTER SESSION SET NLS_DATE_FORMAT 或 CURRENT_SCHEMA)。
更常见的是,您可能想要跟踪 ALTER schema_object,可能是 ALTER SYSTEM 和 ALTER DATABASE