【发布时间】:2011-07-22 19:25:17
【问题描述】:
我想阻止高级用户使用 SQL Server Management Studio 删除数据。当数据被删除时,我需要存档数据并在审计跟踪中添加一些信息。
- 当他们试图从 SSMS 中删除数据时,有没有办法阻止他们?
- 有没有办法知道是哪个进程导致了删除?例如来自 SSMS、应用程序、存储过程?
- 有没有办法只允许从存储过程中删除?
谢谢
【问题讨论】:
标签: sql-server sql-server-2008-r2
我想阻止高级用户使用 SQL Server Management Studio 删除数据。当数据被删除时,我需要存档数据并在审计跟踪中添加一些信息。
谢谢
【问题讨论】:
标签: sql-server sql-server-2008-r2
为此登录创建一个新的登录名和数据库用户。然后授予该用户删除权限,并从所有其他用户撤消该权限。编写删除数据的过程[s],添加WITH EXECUTE AS [previously created user that can delete data]。授予其他用户对该过程的执行权限。
【讨论】:
他们是高级用户,不是吗。您可以为他们设置拒绝删除权限。
DENY DELETE TO [Your_User]
GO
【讨论】:
从您的第二句话中,我得到的印象是删除不是真正的问题,而是您需要存档数据并在删除数据时创建审计跟踪。为什么不使用删除触发器?
【讨论】: