我有一个存储过程,在我们的订单处理中有多个选择用于检查和平衡,长话短说,这个存储过程读取(SELECT)大约20个表,分布在3个数据库中。
CREATE USER [stageUsrOrder] FOR LOGIN [domain\[my user]]
GO
CREATE ROLE OrderSpecRole AUTHORIZATION [stageUsrOrder]
GO
GRANT EXECUTE on [orders].[ValidateOrderById] TO pmdSchedulerRole
GO
我认为这些语句会让我对存储过程中的所有表进行读访问。
我试过
GRANT EXECUTE on [AVIS].[spReportValidationByLAN] TO pmdSchedulerRole WITH GRANT OPTION
GO
但它没有用。
那么,我如何授予对存储过程的执行访问权限以及对内部所有表的SELECT?
答案 0 :(得分:0)
你不是。存储过程的价值主张之一是您可以限制对某些模式的访问。例如,如果您希望人们只按ID搜索,那么您将提供一个以ID作为参数的存储过程。
但是如果你想给他们任意选择访问基础表,你必须明确地这样做。