sql-server – 无论如何为“SELECT”语句创建SQL Server DDL触发
发布时间:2020-12-12 06:19:53 所属栏目:MsSql教程 来源:网络整理
导读:我正在处理一些敏感的Accounting表,我想审计在表上执行的任何SELECT语句或与它们相关的任何视图. 我没有在BOL(联机丛书)上找到任何与SELECT语句有关的DDL Events. DML触发器仅用于INSERT,UPDATE和DELETE. 是否可以通过SELECT语句记录谁访问表和视图? 解决方
我正在处理一些敏感的Accounting表,我想审计在表上执行的任何SELECT语句或与它们相关的任何视图.
我没有在BOL(联机丛书)上找到任何与SELECT语句有关的DDL Events. 是否可以通过SELECT语句记录谁访问表和视图? 解决方法你有3个选择:>如果要记录(并删除表权限),则允许通过存储过程进行访问 我会选择选项1或2,因为它们是您的应用程序的一部分并且是自包含的. 虽然,开始记录确实听起来有点迟:但应该事先限制对表的访问. 此外,如果最终用户没有直接更正(例如通过Web服务器或服务帐户),任何解决方案都会失败.除非你使用存储过程发送最终用户名… 查看示例: CREATE VIEW dbo.MyTableMask AS SELECT * FROM MyTable CROSS JOIN (SELECT 1 FROM SecurityList WHERE name = SUSER_SNAME()) --WHERE could use NOT EXISTS too with table GO (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |