SQL 服务器角色需要的权限才能使用 OBJECT_NAME

Permissions required for SQL Server role to be able to use OBJECT_NAME

我需要向 SQL 服务器数据库角色授予什么最低权限和对象才能获得 OBJECT_NAMEOBJECT_SCHEMA_NAME return 一个值而不是 NULL?

如果有什么奇怪的东西那么我可以只使用 sys.objectssys.schemas 但我假设使用 OBJECT_NAMEOBJECT_SCHEMA_NAME 将是单值的更好方法@@PROCID 访问。

根据 OBJECT_NAME and OBJECT_SCHEMA_NAME 的 MSDN 页面:

Requires ANY permission on the object. To specify a database ID, CONNECT permission to the database is also required, or the guest account must be enabled.

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