我有一个存储过程,该过程在我们的订单过程中有几个选择用于检查和平衡的选择,长话短说,此商店过程读取(选择)约20个表,其中包含3个数据库中的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
,但它不起作用。
那么,我如何授予执行对商店过程的访问并选择内部的所有表?
您不这样做。存储过程的价值主张之一是您可以限制对某些模式的访问。例如,如果您只希望人们通过ID搜索,则给出一个以ID为参数的存储过程。
但是,如果您想给他们任意选择对基础表的访问,则必须明确执行此操作。