我有一系列从数据库中选择数据的存储过程。我有一个角色 (cctc_reader),它具有对程序授予的执行权限。其中一个过程调用另一个存储过程,该过程又被称为recControl_system_option
查询Information_schema.columns
。
问题是在这个过程中查询
select column_name from information_schema.columns where table_name = 'recControl_manager'
不返回任何记录。cctc_reader 具有以下权限:
- 每个选择过程
recControl_system_option
所以理论上这应该有效。在 dbo 下运行时我没有问题。
如果我将 db_datareader 授予 cctc_reader 查询很好,但我不想授予所有表的读取器权限(因此我使用存储过程)。我已尝试按照某些文章中的建议授予对 Master 数据库中 Information_schema 的 Select 权限,但仍然无法使其正常工作。
有什么建议么?