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


sp_column_privileges_ex (Transact-SQL)

Область применения: SQL Server

Возвращает права доступа столбца для указанной таблицы на указанном связанном сервере.

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_column_privileges_ex
    [ @table_server = ] N'table_server'
    [ , [ @table_name = ] N'table_name' ]
    [ , [ @table_schema = ] N'table_schema' ]
    [ , [ @table_catalog = ] N'table_catalog' ]
    [ , [ @column_name = ] N'column_name' ]
[ ; ]

Аргументы

[ @table_server = ] N'table_server'

Имя связанного сервера, для которого возвращаются сведения. @table_server — sysname без значения по умолчанию.

[ @table_name = ] N'table_name'

Имя таблицы, содержащей указанный столбец. @table_name — sysname с значением по умолчаниюNULL.

[ @table_schema = ] N'table_schema'

Схема таблицы. @table_schema имеет имя sysname с значением по умолчаниюNULL.

[ @table_catalog = ] N'table_catalog'

Имя базы данных, в которой находится указанный @table_name . @table_catalog — sysname с значением по умолчаниюNULL.

[ @column_name = ] N'column_name'

Имя столбца, для которого предоставляются сведения о привилегиях. @column_name — это sysname, значение по умолчанию NULL (все распространенные).

Результирующий набор

Следующая таблица показывает столбцы результирующего набора. Возвращаемые результаты упорядочены по TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAMEи COLUMN_NAMEPRIVILEGE.

Имя столбца Тип данных Description
TABLE_CAT sysname Имя квалификатора таблицы. Различные продукты СУБД поддерживают трехкомпонентное именование таблиц (<qualifier>.<owner>.<name>). В SQL Server этот столбец представляет имя базы данных. В некоторых СУБД он представляет имя сервера в среде базы данных, где находится таблица. Это поле может быть NULL.
TABLE_SCHEM sysname Имя владельца таблицы. В SQL Server этот столбец представляет имя пользователя базы данных, создавшего таблицу. Это поле всегда возвращает значение.
TABLE_NAME sysname Имя таблицы. Это поле всегда возвращает значение.
COLUMN_NAME sysname Имя столбца для каждого столбца возвращаемого TABLE_NAME столбца. Это поле всегда возвращает значение.
GRANTOR sysname Имя пользователя базы данных, которое было предоставлено для этого COLUMN_NAME списка GRANTEE. В SQL Server этот столбец всегда совпадает с столбцом TABLE_OWNER. Это поле всегда возвращает значение.

Столбец GRANTOR может быть владельцем базы данных (TABLE_OWNER) или кем-то, кому владелец базы данных предоставил разрешения, используя WITH GRANT OPTION предложение в инструкции GRANT .
GRANTEE sysname Имя пользователя базы данных, которое было предоставлено разрешения на это COLUMN_NAME перечисленным GRANTOR. Это поле всегда возвращает значение.
PRIVILEGE varchar(32) Одно из доступных разрешений на доступ к столбцу. Разрешениями для столбца может быть одно из следующих значений (или другие значения, поддерживаемые источником данных для определенных реализаций):

SELECT = GRANTEE может извлекать данные для столбцов.
INSERT = GRANTEE может предоставлять данные для этого столбца, когда новые строки вставляются (в GRANTEEтаблицу).
UPDATE = GRANTEE может изменять существующие данные в столбце.
REFERENCES = GRANTEE может ссылаться на столбец во внешней таблице в связи первичного ключа или внешнего ключа. Связи первичного ключа и внешнего ключа определяются с ограничениями таблицы.
IS_GRANTABLE varchar(3) Указывает, разрешено ли GRANTEE предоставлять разрешения другим пользователям (часто называемым "предоставлением с разрешением"). Может быть ДА, НЕТ или NULL. Неизвестное значение или NULLзначение относится к источнику данных, где "предоставление с предоставлением" неприменимо.

Разрешения

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

Примеры

Следующий пример возвращает сведения о правах доступа столбца для таблицы HumanResources.Department в базе данных AdventureWorks2022 на связанном сервере Seattle1.

EXEC sp_column_privileges_ex
    @table_server = 'Seattle1',
    @table_name = 'Department',
    @table_schema = 'HumanResources',
    @table_catalog = 'AdventureWorks2022';