SQL Server 2008 R2用户无法使用系统过程

时间:2011-05-10 10:48:19

标签: sql-server sql-server-2008

我已将2005数据库还原到新的2008 R2数据库服务器。我创建了一个名为“gatekeeper”的新用户

但是,该用户无权访问数据库中的存储过程列表。

在运行查询之前的报告应用程序中,报告程序正在运行以下过程...

exec [Timesheet]..sp_procedures_rowset N'mp_GetTimesheetToPrint',1,N'dbo'

在网守用户下运行时,不返回任何行。但是,当以sa运行时,它将返回该过程。

我需要向网守提供的最低权限是什么,以使此程序正常工作。它似乎是所有系统对象的问题,它们都没有运行或给出权限错误,它们只返回没有结果的结果或子集。

真的很挣扎。提前致谢

此致

菲尔

1 个答案:

答案 0 :(得分:1)

老实说我对你的描述有点困惑,所以如果我不在这里,请告诉我。你可以在下面试试。它将授予对所有存储过程的执行访问权限。如果您只需要网守可以访问一个存储过程,那么只需在该存储过程上授予执行权。如果存储过程正在访问其他数据库中的数据,则可能需要授予对表的权限,以使其在数据库外部进行访问。

CREATE ROLE db_executor
GRANT EXECUTE TO db_executor
EXEC sp_addrolemember 'db_executor', 'gatekeeper'