sp_table_privileges_ex (Transact-SQL)
适用范围:SQL Server
返回有关指定链接服务器中的指定表的特权信息。
语法
sp_table_privileges_ex
[ @table_server = ] N'table_server'
[ , [ @table_name = ] N'table_name' ]
[ , [ @table_schema = ] N'table_schema' ]
[ , [ @table_catalog = ] N'table_catalog' ]
[ , [ @fUsePattern = ] fUsePattern ]
[ ; ]
参数
[ @table_server = ] N'table_server'
要为其返回信息的链接服务器的名称。 @table_server为 sysname,没有默认值。
[ @table_name = ] N'table_name'
要为其提供表特权信息的表的名称。 @table_name为 sysname,默认值为 NULL
.
[ @table_schema = ] N'table_schema'
表架构。 在某些 DBMS 环境中是表所有者。 @table_schema为 sysname,默认值为 NULL
.
[ @table_catalog = ] N'table_catalog'
指定 @table_name 所在的数据库的名称。 @table_catalog为 sysname,默认值为 NULL
.
[ @fUsePattern = ] fUsePattern
确定字符、%
[
]
字符_
和解释为通配符。 有效值为 0
(模式匹配已关闭),并且 1
(模式匹配处于打开状态)。 @fUsePattern 为 位,默认值为 1
.
返回代码值
无。
结果集
列名称 | 数据类型 | 描述 |
---|---|---|
TABLE_CAT |
sysname | 表限定符名称。 各种 DBMS 产品支持表的三部分命名(<qualifier>.<owner>.<name> )。 在 SQL Server 中,此列表示数据库名称。 在某些产品中,该列表示表所在的数据库环境的服务器名。 此字段可以是 NULL . |
TABLE_SCHEM |
sysname | 表所有者名称。 在 SQL Server 中,此列表示创建该表的数据库用户的名称。 此字段始终返回值。 |
TABLE_NAME |
sysname | 表名。 此字段始终返回值。 |
GRANTOR |
sysname | 向其授予对 TABLE_NAME 列出的 GRANTEE 权限的数据库用户名。 在 SQL Server 中,此列始终与 TABLE_OWNER . 此字段始终返回值。 此外, GRANTOR 该列可能是数据库所有者(TABLE_OWNER )或数据库所有者通过使用 WITH GRANT OPTION 语句中的 GRANT 子句授予权限的用户。 |
GRANTEE |
sysname | 已由列出的GRANTOR 数据库用户名授予对此TABLE_NAME 权限。 此字段始终返回值。 |
PRIVILEGE |
varchar(32) | 可用的表权限之一。 表权限可以是以下值之一或定义实现时数据源支持的其他值:SELECT = GRANTEE 可以检索一个或多个列的数据。INSERT = GRANTEE 可以为一个或多个列提供新行的数据。UPDATE = GRANTEE 可以修改一个或多个列的现有数据。DELETE = GRANTEE 可以从表中删除行。REFERENCES = GRANTEE 可以在主键/外键关系中引用外表中的列。 在 SQL Server 中,主键/外键关系是使用表约束定义的。由特定表特权授予 GRANTEE 的操作范围取决于数据源。 例如, UPDATE 该权限可以启用 GRANTEE 对一个数据源的表中的所有列的更新,并且仅允许对另一个数据源具有 UPDATE 权限的列更新这些列 GRANTOR 。 |
IS_GRANTABLE |
varchar(3) | 指示是否 GRANTEE 允许向其他用户授予权限。 这常常称为“授予再授予”权限。 可以是 YES 、NO 或 NULL 。 未知或 NULL 值是指“授予授权”不适用的数据源。 |
注解
返回的结果按 TABLE_QUALIFIER
,TABLE_OWNER
TABLE_NAME
和 PRIVILEGE
。
权限
需要对架构的 SELECT
权限。
示例
以下示例从指定的链接数据库 Product
返回有关 AdventureWorks2022
数据库中名称以 Seattle1
开头的表的特权信息。 SQL Server 假定为链接服务器。
EXEC sp_table_privileges_ex @table_server = 'Seattle1',
@table_name = 'Product%',
@table_schema = 'Production',
@table_catalog ='AdventureWorks2022';