我有一个SQL Server 2008数据库,其中对基础表的所有访问都是通过存储过程完成的.某些存储过程只是从表中SELECT记录,而其他存储过程则是UPDATE,INSERT和DELETE.
如果存储过程更新表,那么执行存储过程的用户是否还需要对受影响的表具有UPDATE权限,或者他们对存储过程具有EXECUTE权限这一事实呢?
基本上我想知道是否给用户EXECUTE权限的存储过程是否足够,或者我是否需要为表提供SELECT,UPDATE,DELETE和INSERT权限以使存储过程正常工作.谢谢.
[编辑]在我的大多数存储过程中,确实看起来EXECUTE就足够了.但是,我确实发现在使用"执行sp_Executesql"的存储过程中,EXECUTE是不够的.涉及的表需要具有在"sp_Executesql"中执行的操作的权限.