Stored procedures 由于表权限,执行存储过程与授予执行失败

Stored procedures 由于表权限,执行存储过程与授予执行失败,stored-procedures,permissions,sql-server-2008-r2,grant,Stored Procedures,Permissions,Sql Server 2008 R2,Grant,我已经在模式X上创建了一个存储过程,它跨模式X和Y中的10多个表进行选择 我创建了一个数据库角色DBRole,并向其中添加了一个新的广告组登录名 我想我需要做的就是将x.MyStoredProc上的execute授予DBRole, 但由于select权限,我收到了错误 存储过程MYSCHEMA.MyStoredProc失败:选择权限无效 在对象“myTable”、数据库“Db”、架构“dbo”上被拒绝 我想知道这是否是因为它失败的表在不同的模式中,但是,做一个仍然有效的快速测试 有人能解释一下我

我已经在模式X上创建了一个存储过程,它跨模式X和Y中的10多个表进行选择

我创建了一个数据库角色DBRole,并向其中添加了一个新的广告组登录名

我想我需要做的就是将x.MyStoredProc上的execute授予DBRole, 但由于select权限,我收到了错误

存储过程MYSCHEMA.MyStoredProc失败:选择权限无效 在对象“myTable”、数据库“Db”、架构“dbo”上被拒绝

我想知道这是否是因为它失败的表在不同的模式中,但是,做一个仍然有效的快速测试


有人能解释一下我遗漏了什么吗?

将dbo.XXX上的GRANT SELECT添加到DBRole已经让存储过程运行了,我只是想知道为什么需要它。。(2008r2和2014之间调用不同的架构对象是否存在差异?如果表的所有者相同,则不需要显式授予存储过程中对象的权限。如果要访问其他所有者的对象,则需要相同的权限。knkarthick24有趣!obje所有权的最佳做法是什么cts?即使对于其他模式对象,它也应该始终是dbo吗?目前有3-4个不同的模式,所有这些模式都由不同的用户拥有..将dbo.XXX上的GRANT SELECT添加到DBRole已经使存储过程运行,我只是想知道为什么需要它。。(2008r2和2014之间调用不同的架构对象是否存在差异?如果表的所有者相同,则不需要显式授予存储过程中对象的权限。如果要访问其他所有者的对象,则需要相同的权限。knkarthick24有趣!obje所有权的最佳做法是什么cts?即使对于其他模式对象,它也应该始终是dbo吗?目前有3-4种不同的模式,都由不同的用户拥有。。