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


sp_table_privileges (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Возвращает список разрешений таблицы (напримерINSERT, , DELETEUPDATE, 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_NAMEPRIVILEGE.

Разрешения

Требуется SELECT разрешение на схему.

Примеры

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

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