2017-02-16 141 views
0

我已经在我们的订单流程检查几个选择和余额存储过程,长话短说GRANT选择权限,这个存储过程读取(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 

但没有奏效。

所以,我怎么授予执行访问存储过程,并选择里面的所有表?

回答

0

你不知道。存储过程的价值主张之一是可以限制对特定模式的访问。例如,如果你希望人们只能通过ID进行搜索,你给那么一个存储过程,需要ID作为参数。

但是,如果你想给他们对基础表任意选择访问,你必须做明确。