sp_table_privileges_ex (Transact-SQL)

从指定的链接服务器返回有关指定表的特权信息。

主题链接图标Transact-SQL 语法约定

语法

sp_table_privileges_ex [ @table_server = ] 'table_server' 
     [ , [ @table_name = ] 'table_name' ] 
     [ , [ @table_schema = ] 'table_schema' ] 
     [ , [ @table_catalog = ] 'table_catalog' ]
     [ , [@fUsePattern =] 'fUsePattern']

参数

  • [ @table_server = ] 'table_server'
    要返回其信息的链接服务器的名称。table_server 的数据类型为 sysname,无默认值。

  • [ @table_name = ] 'table_name']
    将为其提供表特权信息的表的名称。table_name 的数据类型为 sysname,默认值为 NULL。

  • [ @table_schema = ] 'table_schema'
    表架构。在某些 DBMS 环境中是表所有者。table_schema 的数据类型为 sysname,默认值为 NULL。

  • [ @table_catalog = ] 'table_catalog'
    指定的 table_name 所在数据库的名称。table_catalog 的数据类型为 sysname,默认值为 NULL。

  • [ @fUsePattern =] 'fUsePattern'
    确定字符 "_"、"%"、"[" 和 "]" 是否解释为通配符。有效值为 0(模式匹配为关闭状态)和 1(模式匹配为打开状态)。fUsePattern 的数据类型为 bit,默认值为 1。

返回代码值

结果集

列名

数据类型

说明

TABLE_CAT

sysname

表限定符名称。许多 DBMS 产品都支持表的三部分构成命名方式 (qualifier.owner.name)。在 SQL Server 中,此列表示数据库名称。在某些产品中,该列表示表所在数据库环境的服务器名。该字段可以为 NULL。

TABLE_SCHEM

sysname

表所有者名称。在 SQL Server 中,此列表示创建该表的数据库用户的名称。该字段始终返回值。

TABLE_NAME

sysname

表名。该字段始终返回值。

GRANTOR

sysname

已向列出的 GRANTEE 授予对此 TABLE_NAME 的权限的数据库用户名。在 SQL Server 中,此列始终与 TABLE_OWNER 相同。该字段始终返回值。同样,GRANTOR 列可能是数据库所有者 (TABLE_OWNER),或由数据库所有者使用 GRANT 语句中的 WITH GRANT OPTION 子句授予权限的用户。

GRANTEE

sysname

已被列出的 GRANTOR 授予对此 TABLE_NAME 的权限的数据库用户名。该字段始终返回值。

PRIVILEGE

varchar(32)

可用的表权限之一。表权限可以是以下值之一或定义实现时数据源支持的其他值:

SELECT = GRANTEE 可以检索一列或多列的数据。

INSERT = GRANTEE 可为一列或多列的新行提供数据。

UPDATE = GRANTEE 可为一列或多列修改现有数据。

DELETE = GRANTEE 可从表中删除行。

REFERENCES = GRANTEE 可以用主键/外键关系引用外表中的列。在 SQL Server 中,主键/外键关系是使用表约束定义的。

由特定表特权给予 GRANTEE 的操作的作用域是由数据源决定的。例如,UPDATE 权限可以启用 GRANTEE 来更新一个数据源的表中的所有列,也可以只更新在另一个数据源中 GRANTOR 对其具有 UPDATE 权限的那些列。

IS_GRANTABLE

varchar(3)

指示是否允许 GRANTEE 向其他用户授予权限。这常常称为“授予再授予”权限。可以是 YES、NO 或 NULL。未知的(或 NULL)值指不适用“授予再授予”的数据源。

注释

返回结果按 TABLE_QUALIFIERTABLE_OWNERTABLE_NAMEPRIVILEGE 顺序排列。

权限

需要对架构的 SELECT 权限。

示例

以下示例从指定的链接数据库 Seattle1 返回有关 AdventureWorks2008R2 数据库中名称以 Product 开头的表的特权信息。(SQL Server 假定为链接服务器)。

EXEC sp_table_privileges_ex @table_server = 'Seattle1', 
   @table_name = 'Product%', 
   @table_schema = 'Production',
   @table_catalog ='AdventureWorks2008R2';