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. Поиск совпадений по шаблону поддерживается. Если владелец таблицы не указан, применяются правила видимости таблиц в базовой СУБД по умолчанию.В SQL Server 2005, если текущий пользователь является владельцем таблицы с указанным именем, возвращаются столбцы этой таблицы. Если аргумент 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 AdventureWorks;
GO
EXEC sp_table_privileges
@table_name = 'Contact%';
См. также
Справочник
Хранимые процедуры каталога (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)