sp_table_privileges (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
Возвращает список разрешений таблицы (напримерINSERT
, , DELETE
UPDATE
, SELECT
) REFERENCES
для указанной таблицы или таблиц.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sp_table_privileges
[ @table_name = ] N'table_name'
[ , [ @table_owner = ] N'table_owner' ]
[ , [ @table_qualifier = ] N'table_qualifier' ]
[ , [ @fUsePattern = ] fUsePattern ]
[ ; ]
[ @table_name = ] N'table_name'
Таблица, используемая для возврата сведений о каталоге. @table_name — nvarchar(384), без значения по умолчанию. Поиск совпадений по шаблону поддерживается.
[ @table_owner = ] N'table_owner'
Владелец таблицы, используемой для возврата сведений о каталоге. @table_owner — nvarchar(384) с значением по умолчаниюNULL
. Поиск совпадений по шаблону поддерживается. Если владелец не указан, применяются правила видимости таблицы по умолчанию для базовых СУБД.
Если текущий пользователь является владельцем таблицы с указанным именем, возвращаются столбцы этой таблицы. Если владелец не указан, а текущий пользователь не владеет таблицей с указанным именем, эта процедура ищет таблицу с указанным table_name владельцем базы данных. Если такая таблица существует, возвращаются ее столбцы.
[ @table_qualifier = ] N'table_qualifier'
Имя квалификатора таблицы. @table_qualifier имеет имя sysname с значением по умолчаниюNULL
. Различные продукты СУБД поддерживают трехкомпонентное именование таблиц (qualifier.owner.name). В SQL Server этот столбец представляет имя базы данных. В некоторых СУБД он представляет имя сервера в среде базы данных, где находится таблица.
[ @fUsePattern = ] fUsePattern
Определяет, интерпретируются ли символы подчеркивания (_
), процента () и скобки (%
[
или]
) как подстановочные знаки. Допустимые значения: 0
(сопоставление шаблонов отключено) и 1
(сопоставление шаблонов включено). @fUsePattern бит с значением по умолчанию1
.
Значения кода возврата
Нет.
Результирующий набор
Имя столбца | Тип данных | Description |
---|---|---|
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_principalssystem представления. Это поле всегда возвращает значение. |
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
процедура эквивалентна SQLTablePrivileges
ODBC. Возвращаемые результаты упорядочены по TABLE_QUALIFIER
, TABLE_OWNER
и TABLE_NAME
PRIVILEGE
.
Разрешения
Требуется SELECT
разрешение на схему.
Примеры
Следующий код возвращает сведения о правах доступа, связанных со всеми таблицами, имена которых начинаются на Contact
.
USE AdventureWorks2022;
GO
EXEC sp_table_privileges @table_name = 'Contact%';