不会为 alter table 触发但仅针对 dba 用户触发的审计触发器

Audit trigger that doesn't fire for alter table, but only for dba users

您好,我是一名 DBA,我遇到了这种情况,每次我用非空字段添加默认值来更改 table 时,审计触发器会在各处写入我的用户名(当然,可怜的家伙只是在做他的工作)。问题是我们的开发人员不喜欢我的名字出现在审计 table 中,所以我需要找到一种方法来解决这种情况……也许用 if 条件更改触发器?创建第二个我每次做那种操作时激活的?更好的想法???

第一反应是用if条件改变触发器。如果 powers-that-be 不关心列的 NULL 能力变化,那么他们不应该被审计。

但是,我不太喜欢那个解决方案。审计历史 table 的存在是有原因的。也许还有其他事情正在发生,例如在进行更改时发出通知。如果是这样,通知的逻辑应该改变而不是审计 tables.

这类似于编译代码时的警告与错误。更改 NULL-ability 仍会在审核 table 中,因此 DBA 可以在需要时查看完整的更改历史记录。这并不意味着每次此类更改都应通知他们。

注意:这可能需要更改触发器并添加 "priority level" 或类似于审计 table 的内容。此级别可用于设置通知。