sp_table_privileges_ex (Transact-SQL)

Возвращает данные о правах доступа для указанной таблицы из указанного связанного сервера.

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

Значок ссылки на раздел Синтаксические обозначения в 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'
    Схема таблицы. В некоторых средах СУБД является владельцем таблицы. Аргумент table_schema имеет тип sysname и значение по умолчанию NULL.

  • [ @table_catalog = ] 'table_catalog'
    Имя базы данных, в которой расположена указанная таблица table_name. Аргумент table_catalog имеет тип sysname и значение по умолчанию NULL.

  • [ @fUsePattern = ] 'fUsePattern'
    Определяет, следует ли рассматривать символы «_», «%», «[» и «]» как символы-шаблоны. Допустимые значения: 0 (сопоставление с шаблоном отключено) и 1 (сопоставление с шаблоном включено). Аргумент fUsePattern имеет тип bit и значение по умолчанию 1.

Значения кода возврата

Нет

Результирующие наборы

Имя столбца

Тип данных

Описание

TABLE_CAT

sysname

Имя квалификатора таблицы. Различные продукты СУБД поддерживают трехкомпонентные имена таблиц (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

Имя пользователя базы данных, которому предоставлены разрешения на таблицу TABLE_NAME указанным пользователем GRANTOR. Это поле всегда возвращает значение.

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 право предоставлять разрешения другим пользователям. Часто это называется разрешение «grant with grant». Может иметь значение YES, NO или NULL. Неизвестное значение (или NULL) свидетельствует о том, что разрешение «grant with grant» к источнику данных неприменимо.

Замечания

Возвращенные результаты упорядочиваются по столбцам TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME и PRIVILEGE.

Разрешения

Необходимо разрешение SELECT на схему.

Примеры

В следующем примере возвращаются сведения о правах доступа для таблиц с именами, начинающимися на Product, в базе данных AdventureWorks2012 из указанного связанного сервера Seattle1. (SQL Server считается связанным сервером.)

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

См. также

Справочник

sp_column_privileges_ex (Transact-SQL)

Системные хранимые процедуры (Transact-SQL)

Хранимые процедуры распределенных запросов (Transact-SQL)