【问题标题】:Permissions required for SQL Server role to be able to use OBJECT_NAMESQL Server 角色能够使用 OBJECT_NAME 所需的权限
【发布时间】:2017-05-28 20:22:54
【问题描述】:

我需要向 SQL Server 数据库角色授予哪些最低权限以及哪些对象才能获得 OBJECT_NAMEOBJECT_SCHEMA_NAME 以返回值而不是 NULL

如果有什么奇怪的地方,我可以只使用sys.objectssys.schemas,但我认为使用OBJECT_NAMEOBJECT_SCHEMA_NAME 是单值@@PROCID 访问的更好方法。

【问题讨论】:

    标签: sql-server user-permissions


    【解决方案1】:

    根据 OBJECT_NAMEOBJECT_SCHEMA_NAME 的 MSDN 页面:

    需要对该对象的任何权限。要指定数据库 ID,还需要对数据库具有 CONNECT 权限,或者必须启用访客帐户。

    所以答案是您需要对要传递给函数的对象的 any 权限。确保在调用函数时肯定传递了有效的 object_id(其类型为 INT,并且应对应于当前或指定数据库中对象的 object_id 值)。

    【讨论】:

    • 将 ViewDefinition 授予与正在进行调用的用户上下文不同的调用 proc 就可以了。这并不理想,因为它稍微暴露了比我们想象的更多的细节。但是,不需要其他权限。我们还修改了我们的处理程序,以便如果它从 OBJECT_NAME 返回 NULL 值,它将返回传递给它的 ObjectID,以便我们至少可以手动查找它。
    • 太好了,很高兴您找到了解决方案。如果我的回答对您有帮助,请随时将其标记为已接受。
    猜你喜欢
    • 1970-01-01
    • 2022-07-12
    • 1970-01-01
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    • 2013-01-18
    • 2016-09-13
    • 1970-01-01
    相关资源
    最近更新 更多