【问题标题】:SQL Server 2008 grant permission to information_schema.columnsSQL Server 2008 授予 information_schema.columns 权限
【发布时间】:2011-03-25 21:17:34
【问题描述】:

我有一系列从数据库中选择数据的存储过程。我有一个角色 (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 db 中 Information_schema 的 Select 权限,但仍然无法使其正常工作。

有什么建议吗?

【问题讨论】:

    标签: sql-server sql-server-2008 permissions information-schema


    【解决方案1】:

    对象元数据的可见性取决于VIEW DEFINITION 权限:

    GRANT VIEW DEFINITION ON ... TO cctc_reader;
    

    查看定义权限允许 用户看到安全的元数据 被授予许可的对象。 但是,查看定义权限 不授予访问权限 本身是安全的。例如,一个用户 仅授予查看定义 表的权限可以查看元数据 与表中的相关 sys.objects 目录视图。然而, 没有额外的权限,例如 选择或控制,用户不能 从表中读取数据。

    授予权限的安全权利取决于您的方案。它可能是 dbo 或其他模式,可能是数据库本身,也可能是单个表。如果我在你的位置,我会对 recControl_system_option 过程进行代码签名,并且我会在服务器级别的签名上授予 VIEW ANY DEFINITION,这是使用角色和授予角色权限的更好和安全的方式。请参阅Signing an activated procedure,了解如何签署过程并授予对签名的服务器级别权限的示例。

    【讨论】:

    • 太棒了!感谢您的输入。我已经解决了这个问题,你给了我很多思考......!
    【解决方案2】:

    正如 Remus 所提到的,元数据可见性会影响查询系统表和视图时返回的数据。如果您对安全的(对象、登录名等)没有权限,它将不可见。

    根据您的情况,您可以允许内部调用以 EXECUTE AS OWNER 身份执行,或者将 Information_schema.columns 包装在 udf 中,即 EXECUTE AS OWNER

    我们在查询元数据时使用这种技术。

    【讨论】:

      【解决方案3】:

      在别处找到这个,在你的数据库中创建一个调用 System sproc sp_columns 的 sproc。您的 sproc 可以使用与其他 sproc 相同的权限执行。缺点是返回的集合有很多你可能不感兴趣的列。我敢说你可以改进存储过程。我选择在代码中进行字段选择。

      CREATE PROCEDURE [dbo].[proc_tblMyTableSchemaGet] 
      

      作为 开始

      SET NOCOUNT ON;
      
      
      exec sp_columns @table_name = 'myTable', @table_owner = 'dbo';
      

      结束

      【讨论】:

        猜你喜欢
        • 2011-09-07
        • 2011-02-13
        • 1970-01-01
        • 1970-01-01
        • 2014-06-25
        • 2011-04-29
        • 2012-07-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多