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%';