代码之家  ›  专栏  ›  技术社区  ›  Jason

需要哪些数据库用户权限?

  •  2
  • Jason  · 技术社区  · 14 年前

    仅供参考:SQL Server 2005

    我有一个数据库用户帐户(user_web),它能够连接并运行数据库中的查询和存储过程。具体来说,我已经给了用户 db_datareader db_datawriter 角色以及授予它们对它需要能够运行的特定存储过程的执行权限。

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

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

    TableName 是我试图禁用和启用触发器的表。我的问题是,我可以给我的用户帐户授予的允许它成功运行存储过程的最少权限是多少。

    2 回复  |  直到 14 年前
        1
  •  2
  •   Nathan Wheeler    14 年前

    用户将“至少”要求 ALTER 有关表的权限。见: http://technet.microsoft.com/en-us/library/ms182706.aspx

        2
  •  2
  •   Bob Pusateri    14 年前

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

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