在SQL Server 2012上。有没有办法让一个触发器在读取一个表/行时被激活,而不是被修改或删除?
答案 0 :(得分:2)
您无法创建此类触发器。可以根据列出的事件创建three种类型的触发器:
DML
当用户尝试通过数据修改数据时执行DML触发器 操纵语言(DML)事件。 DML事件是INSERT,UPDATE或 删除表或视图上的语句。
DDL
DDL触发器执行以响应各种数据定义 语言(DDL)事件。
登录触发器
在建立用户会话时引发的LOGON事件。
结束触发器列出的事件如下:
DML
INSERT,UPDATE或DELETE语句到表或视图
DDL
CREATE,ALTER,DROP,GRANT,DENY,REVOKE或UPDATE语句
登录触发器
登录事件
您可以查看所有DDL事件here。
答案 1 :(得分:2)
如果需要知道访问该表的人,可以使用
1.SQLSERVER审计
2.延长活动
我会使用扩展事件,因为它重量轻,并且还提供了将日志存储到文件以供以后分析的选项。如果您正在寻找审核,那么您还可以查看以下链接:https://blogs.msdn.microsoft.com/sreekarm/2009/01/05/auditing-select-statements-in-sql-server-2008/