我有这个存储过程,用两个内部联接(其中一个表在另一个数据库)执行选择查询。现在,我不得不将这个查询写为动态原因,首先我必须找到选择查询应该运行哪个数据库。无论如何,这些表都没有权限,只是授予数据库角色“personel”(包括所有人)的存储过程权限。在存储过程中运行的动态查询的权限问题
但是现在,有个人角色的人运行这个存储过程,他们得到错误“SELECT权限在对象'tbl_table',数据库'Db',模式'dbo'上被拒绝。在架构中没有区别,还有其他使用正常运行的同一个表的proc。
可以使用动态查询(exec(Use DB; select ...))是这个原因吗?就像因为它是动态的,我应该给这些表的权限呢?
谢谢
感谢您的回答。猜猜我应该决定给予表的权限还是将动态查询改为正常的。 – futile 2011-04-07 12:27:40