这个
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
答案 0 :(得分:1)
AS with GRANT - 指定执行此查询的主体从中获取权限的主体(来自MSDN)。
所以这意味着[dbo]
没有权限在SCHEMA [test]
上授予某些内容。我想你应该在查询之前运行它:
GRANT EXECUTE ON SCHEMA::[test] TO [dbo] WITH GRANT OPTION;