如何将dql权限授予不同模式中的对象作为dbo?

时间:2016-01-28 18:46:56

标签: sql-server sql-server-2012 privileges

这个

GRANT EXECUTE ON OBJECT::[test].[someTable] TO [MyUser] AS [dbo];

失败并显示错误

Msg 15151, Level 16, State 1, Line 1 Cannot find the object 'someTable', because it does not exist or you do not have permission.

如果我删除AS [dbo]部分,它可以正常工作。有人可以解释为什么这样做以及删除as dbo部分的含义吗?

这适用于SQL Server 2012

1 个答案:

答案 0 :(得分:1)

AS with GRANT - 指定执行此查询的主体从中获取权限的主体(来自MSDN)。 所以这意味着[dbo]没有权限在SCHEMA [test]上授予某些内容。我想你应该在查询之前运行它:

GRANT EXECUTE ON SCHEMA::[test] TO [dbo] WITH GRANT OPTION;