我已将2005数据库还原到新的2008 R2数据库服务器。我创建了一个名为“gatekeeper”的新用户
但是,该用户无权访问数据库中的存储过程列表。
在运行查询之前的报告应用程序中,报告程序正在运行以下过程...
exec [Timesheet]..sp_procedures_rowset N'mp_GetTimesheetToPrint',1,N'dbo'
在网守用户下运行时,不返回任何行。但是,当以sa运行时,它将返回该过程。
我需要向网守提供的最低权限是什么,以使此程序正常工作。它似乎是所有系统对象的问题,它们都没有运行或给出权限错误,它们只返回没有结果的结果或子集。
真的很挣扎。提前致谢
此致
菲尔
答案 0 :(得分:1)
老实说我对你的描述有点困惑,所以如果我不在这里,请告诉我。你可以在下面试试。它将授予对所有存储过程的执行访问权限。如果您只需要网守可以访问一个存储过程,那么只需在该存储过程上授予执行权。如果存储过程正在访问其他数据库中的数据,则可能需要授予对表的权限,以使其在数据库外部进行访问。
CREATE ROLE db_executor
GRANT EXECUTE TO db_executor
EXEC sp_addrolemember 'db_executor', 'gatekeeper'