sp_table_privileges (Transact-SQL)
Возвращает список разрешений (таких как INSERT, DELETE, UPDATE, SELECT, REFERENCES) для указанной таблицы или таблиц.
Синтаксис
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 AdventureWorks2008R2;
GO
EXEC sp_table_privileges
@table_name = 'Contact%';
См. также