SQL Server更新/插入/删除表记录仅来自存储过程

时间:2012-08-06 14:27:14

标签: sql-server stored-procedures

有没有办法确定只有SQL Server中的存储过程修改表(INSERT / DELETE / UPDATE)而不触及权限?

2 个答案:

答案 0 :(得分:2)

没有。这就是权限的用途。

答案 1 :(得分:1)

不幸的是,如果没有触及权限,我认为没有办法做到这一点。我知道这样做的唯一方法是

  1. 设置一个只能调用SP的用户(不能访问任何表)。
  2. 在每个SP中,您必须使用“EXECUTE AS”模拟对该表具有完全访问权限的用户(http://msdn.microsoft.com/en-us/library/ms188354.aspx)
  3. 然后,应用程序使用您在第一步中创建的新用户来调用SP。