需要什么数据库用户权限?

时间:2010-01-05 15:15:59

标签: sql-server sql-server-2005 stored-procedures ddl

仅供参考:SQL Server 2005

我有一个数据库用户帐户(user_web),它能够连接到我的数据库并在我的数据库中运行查询和存储过程。具体来说,我已经为用户提供了db_datareaderdb_datawriter角色,并授予他们对能够运行的特定存储过程的执行权限。

在其中一个存储过程中,我需要禁用触发器,然后在完成某些特定编辑后重新启用它。当我尝试与用户运​​行该存储过程时,我收到以下错误:

Cannot find the object "TableName" because it does not exist or you do not have permissions.

TableName是我尝试禁用和启用触发器的表。我的问题是,我可以为用户帐户提供的权限最少,这将允许它成功运行存储过程。

2 个答案:

答案 0 :(得分:2)

用户将“至少”在相关表格上要求ALTER权限。请参阅:http://technet.microsoft.com/en-us/library/ms182706.aspx

答案 1 :(得分:2)

我可以将该特定存储过程作为具有这些权限的其他用户运行,而不是在表上授予用户ALTER权限,这可能是一个安全问题。使用EXECUTE AS语法完成此操作。

http://msdn.microsoft.com/en-us/library/ms188354.aspx