授予执行权限 不授予对表的选择权限



我有一个存储过程,该过程在我们的订单过程中有几个选择用于检查和平衡的选择,长话短说,此商店过程读取(选择)约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为参数的存储过程。

但是,如果您想给他们任意选择对基础表的访问,则必须明确执行此操作。

最新更新