Sql server 如何查找SQL Server表类型的权限?

Sql server 如何查找SQL Server表类型的权限?,sql-server,permissions,user-defined-types,Sql Server,Permissions,User Defined Types,希望这里有一个简单的问题: 如何获取SQL Server表类型的权限 我知道如何授予他们(比如: GRANT [permission] ON TYPE::[schema_name].[type_name] TO [user] 根据 然而,我想知道的是,如何找出用户对特定表类型已经拥有的权限。我试着浏览了一些表,如INFORMATION\u SCHEMA.TABLE\u PRIVILEGES、sys.database\u permissions和sys.syspermissions,但我没有任何

希望这里有一个简单的问题:

如何获取SQL Server
表类型的权限

我知道如何授予他们(比如:

GRANT [permission] ON TYPE::[schema_name].[type_name] TO [user]
根据

然而,我想知道的是,如何找出用户对特定表类型已经拥有的权限。我试着浏览了一些表,如
INFORMATION\u SCHEMA.TABLE\u PRIVILEGES
sys.database\u permissions
sys.syspermissions
,但我没有任何运气

我的猜测是,我可能遗漏了一些明显的信息,或者表类型的权限存储在其他地方。

试试以下方法:

SELECT * 
FROM sys.database_permissions a
  JOIN sys.database_principals b on a.grantee_principal_id = b.principal_id
   where major_id=object_id('dbo.TableNameHere')

您需要使用sys.table\u types中的用户\u type\u id来加入sys.database\u权限:

SELECT prmssn.*
FROM sys.table_types AS tt INNER JOIN sys.database_permissions AS prmssn ON prmssn.major_id=tt.user_type_id 
WHERE tt.name='<Table-Type Name>' 
    AND SCHEMA_NAME(tt.schema_id)='<SchemaName>')
选择prmssn*
FROM sys.table_type AS tt internal JOIN sys.database_permissions AS prmssn ON prmssn.major_id=tt.user_type_id
其中tt.name=''
和SCHEMA_NAME(tt.SCHEMA_id)='')

我要找的不是表格,而是表格类型。不幸的是,尝试
dbo.MyTypeName
不会返回任何结果。