Поделиться через


sp_table_privileges (Transact-SQL)

Возвращает список разрешений (таких как INSERT, DELETE, UPDATE, SELECT, REFERENCES) для указанной таблицы или таблиц.

Значок ссылки на раздел Соглашения о синтаксисе в Transact-SQL

Синтаксис

sp_table_privileges [ @table_name = ] 'table_name'   
     [ , [ @table_owner = ] 'table_owner' ] 
     [ , [ @table_qualifier = ] 'table_qualifier' ] 
     [ , [ @fUsePattern = ] 'fUsePattern' ]

Аргументы

  • [ @table\_name= ] 'table_name'
    Таблица, используемая для возврата сведений о каталоге. Аргумент table_name имеет тип nvarchar(384) и не имеет значения по умолчанию. Поиск совпадений по шаблону поддерживается.

  • [ @table\_owner= ] 'table_owner'
    Владелец таблицы, используемой для возврата сведений о каталоге. Аргумент table_ownerимеет тип nvarchar(384) и значение по умолчанию NULL. Поиск совпадений по шаблону поддерживается. Если владелец не указан, применяются правила видимости таблиц по умолчанию базовой СУБД.

    Если текущий пользователь является владельцем таблицы с указанным именем, возвращаются столбцы этой таблицы. Если аргумент owner не указан, а таблица с именем name не принадлежит текущему пользователю, эта процедура ищет таблицу с именем table_name, принадлежащую владельцу базы данных. Если такая таблица существует, возвращаются ее столбцы.

  • [ @table\_qualifier= ] 'table_qualifier'
    Имя квалификатора таблицы. Аргумент table_qualifier имеет тип sysname и значение по умолчанию NULL. Некоторые СУБД поддерживают трехкомпонентные имена таблиц (qualifier.owner.name). В SQL Server этот столбец представляет имя базы данных. В некоторых СУБД он представляет имя сервера в среде базы данных, где находится таблица.

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

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

Нет

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

Имя столбца

Тип данных

Описание

TABLE_QUALIFIER

sysname

Имя квалификатора таблицы. В SQL Server этот столбец представляет имя базы данных. Это поле может иметь значение NULL.

TABLE_OWNER

sysname

Имя владельца таблицы. Это поле всегда возвращает значение.

TABLE_NAME

sysname

Имя таблицы. Это поле всегда возвращает значение.

GRANTOR

sysname

Имя пользователя базы данных, предоставившего разрешения на таблицу TABLE_NAME указанному пользователю GRANTEE. В SQL Server этот столбец всегда совпадает с TABLE_OWNER. Это поле всегда возвращает значение. Столбец GRANTOR может соответствовать или владельцу базы данных (TABLE_OWNER), или пользователю, которому владелец базы данных предоставил разрешение с помощью предложения WITH GRANT OPTION инструкции GRANT.

GRANTEE

sysname

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

PRIVILEGE

sysname

Одно из доступных разрешений на таблицу. Разрешения на таблицу могут быть одним из следующих значений (или другими значениями, поддерживаемыми источником данных, если определена реализация).

SELECT = GRANTEE — может получать данные для одного или нескольких столбцов.

INSERT = GRANTEE — может предоставлять данные для новых строк для одного или нескольких столбцов.

UPDATE = GRANTEE — может изменять существующие данные для одного или нескольких столбцов.

DELETE = GRANTEE — может удалять строки из таблицы.

REFERENCES = GRANTEE может ссылаться на столбец внешней таблицы в связи «первичный-внешний ключ». В SQL Server связи «первичный ключ-внешний ключ» определяются с ограничениями таблицы.

Область действий, предоставляемая пользователю GRANTEE указанным правом доступа к таблице, зависит от источника данных. Например, права доступа UPDATE могут разрешить пользователю GRANTEE обновлять все столбцы таблицы при работе с одним источником данных и только те столбцы, на которые пользователь GRANTOR имеет разрешение UPDATE, при работе с другим источником данных.

IS_GRANTABLE

sysname

Указывает, может ли пользователь GRANTEE предоставлять разрешения другим пользователям (так называемые разрешения «право передачи»). Может иметь значение YES, NO или NULL. Неизвестное значение (или NULL) относится к источнику данных, к которому не применимо понятие «право передачи».

Замечания

Хранимая процедура sp_table_privileges эквивалентна ODBC-функции SQLTablePrivileges. Возвращенные результаты сортируются по столбцам TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME и PRIVILEGE.

Разрешения

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

Примеры

Следующий код возвращает сведения о правах доступа, связанных со всеми таблицами, имена которых начинаются на Contact.

USE AdventureWorks2012;
GO
EXEC sp_table_privileges 
   @table_name = 'Contact%';

См. также

Справочник

Хранимые процедуры каталога (Transact-SQL)

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