SQL Server 2008 - 从存储过程中专门删除数据

时间:2011-07-22 19:25:18

标签: sql-server sql-server-2008-r2

我想阻止超级用户使用SQL Server Management Studio删除数据。我需要归档数据并在删除数据时向审计跟踪添加一些信息。

  • 当他们试图从SSMS中删除数据时,有没有办法阻止它们?
  • 有没有办法知道哪个进程导致删除?例如来自SSMS,应用程序,存储过程?
  • 有没有办法只允许从存储过程中删除?

由于

3 个答案:

答案 0 :(得分:0)

他们是超级用户不是他们。您可以为它们设置拒绝删除权限。

DENY DELETE TO [Your_User]
GO

答案 1 :(得分:0)

为此登录创建新的登录和数据库用户。然后向该用户授予删除权限,并从其他所有用户撤消该权限。编写删除数据的过程[s],添加WITH EXECUTE AS [previously created user that can delete data]。授予其他用户对过程[s]的执行权限。

答案 2 :(得分:0)

从第二句开始,我得到的结论是删除不是真正的问题,但是在删除数据时需要归档数据并创建审计跟踪。为什么不使用删除触发器?