0

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

如何获得 SQL Server 的权限table_type

我知道如何授予他们,例如:

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

根据http://technet.microsoft.com/en-us/library/ms174346.aspx

然而,我想知道的是如何找出用户对特定 table_type 已经拥有的权限。我尝试过查看INFORMATION_SCHEMA.TABLE_PRIVILEGES,sys.database_permissions和之类的表格sys.syspermissions,但我没有任何运气。

我的猜测是我要么遗漏了一些明显的东西,要么 table_types 的权限存储在其他地方。

4

2 回答 2

1

您需要使用 sys.table_types 中的 user_type_id 来加入 sys.database_permissions:

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>')
于 2013-09-24T17:07:23.357 回答
0

尝试这个:

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')
于 2013-09-16T19:06:15.347 回答