【问题标题】:Grant EXECUTE permission Doesn't GRANT Select permission on tables授予 EXECUTE 权限 不授予对表的选择权限
【发布时间】:2017-07-06 01:37:10
【问题描述】:

我有一个存储过程,在我们的订单过程中有几个用于检查和平衡的选择,长话短说,这个存储过程读取(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 权限?

【问题讨论】:

    标签: sql-server database stored-procedures grant role


    【解决方案1】:

    你没有。存储过程的价值主张之一是您可以限制对某些模式的访问。例如,如果您希望人们仅按 ID 进行搜索,那么您将提供一个以 ID 作为参数的存储过程。

    但是,如果您想授予他们对基础表的任意选择访问权限,您必须明确地这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-17
      • 2013-12-24
      • 2011-09-07
      • 1970-01-01
      • 2016-08-24
      • 2015-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多