我已经将audit_sys_operations设置为true,audit_trail是DB,EXTENDED。现在,我有了一个具有数据库管理员权限的帐号,名为admin。我使用AUDIT CREATE ANY TABLE BY ADMIN,但select * from SYS.AUD$没有显示管理员创建新表的任何内容,即使管理员创建了几个表;
是否可以查看具有DBA权限的用户的审计记录?
我在服务器级别创建了一个触发器来控制何时创建数据库。
我有一个在SQL 2014上运行良好的脚本,现在我们转移到了SQL 2017,脚本运行正常,但我收到了很多电子邮件
CREATE TRIGGER [ddl_trig_database]
ON ALL SERVER
FOR ALTER_DATABASE
AS
DECLARE @results NVARCHAR(max)
DECLARE @subjectText NVARCHAR(max)
DECLARE @databaseName NVARCHAR(255)
SET @subjectText = 'NEW DATABASE Cre
我在应用程序数据库上实现了审计跟踪,该数据库捕获旧值、新值、修改时间,并将其插入到另一个表中。现在,我希望为每个表添加一个修订号,以提高idempondency检查的效率。
目前,捕获所有数据的触发器是在更新之后。我的理解是,如果我想更新我正在操作的行,我需要使用一个前置触发器。ie:
CREATE TRIGGER `Table_A_Audit_Trigger` BEFORE UPDATE ON `Table_A`;
FOR EACH ROW BEGIN;
SET NEW.revision = OLD.revision + 1;
为此设置两个单独的触发器更好,还是将插入移动到“前”触发器中?
我需要创建一个数据库表来存储不同的changelog/审计(当某些内容被添加、删除、修改时)。我不需要存储特别详细的信息,所以我在考虑以下内容:
事件的事件id(用于事件)触发它的用户event name event
我是不是漏掉了什么?显然,我可以不断改进设计,尽管我不打算让它变得复杂(为事件类型或类似的东西创建其他表是不可能的,因为这对我的需求来说是一个复杂的问题)。