2017-01-13 89 views
1

什么是我需要赋予SQL Server数据库角色以获得OBJECT_NAMEOBJECT_SCHEMA_NAME以返回值的最小权限和哪些对象而不是NULLSQL Server角色能够使用OBJECT_NAME所需的权限

如果有一些奇怪的话,我可以只使用sys.objectssys.schemas但我认为使用OBJECT_NAMEOBJECT_SCHEMA_NAME将是单值@@PROCID获得更好的方法。

回答

0

按照MSDN页都OBJECT_NAMEOBJECT_SCHEMA_NAME

需要对象的任何权限。要指定数据库ID,CONNECT权限数据库也是必需的,或来宾帐户必须启用。

所以答案是你需要任何权限对你传递给函数的对象。请确保你肯定是通过一个有效的object_id(这是INT类型,并对应于一个object_id值对象在当前或指定的数据库),当你打电话的功能。

+0

将ViewDefinition授予处于不同用户上下文中的调用过程与正在进行调用的位置有关。这并不理想,因为它稍微暴露了比我们设想的更多细节。但是不需要其他权限。我们还修改了处理程序,以便如果它从OBJECT_NAME获得NULL值,它将返回传递给它的ObjectID,以便我们至少可以手动查找它。 –

+0

太好了,很高兴你找到了解决办法。如果我的回答很有帮助,请随时将其标记为已接受。 – 3N1GM4