sp_column_privileges_ex (Transact-SQL)

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

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

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

Аргументы

  • [ @table_server = ] 'table_server'
    Имя связанного сервера, для которого возвращаются данные. Аргумент table_server имеет тип sysname и не имеет значения по умолчанию.

  • [ @table_name = ] 'table_name'
    Имя таблицы, которая содержит указанный столбец. Аргумент table_name имеет тип sysname и значение по умолчанию NULL.

  • [ @table_schema = ] 'table_schema'
    Схема таблицы. Аргумент table_schema имеет тип sysname и значение по умолчанию NULL.

  • [ @table_catalog = ] 'table_catalog'
    Имя базы данных, в которой находится указанная таблица table_name. Аргумент table_catalog имеет тип sysname и значение по умолчанию NULL.

  • [ @column_name = ] 'column_name'
    Имя столбца, для которого предоставляются сведения о правах доступа. Аргумент column_name имеет тип sysname и значение по умолчанию NULL (все общие).

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

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

Имя столбца

Тип данных

Описание

TABLE_CAT

sysname

Имя квалификатора таблицы. Различные продукты СУБД поддерживают трехкомпонентные имена таблиц (qualifier.owner.name). В SQL Server 2008 этот столбец представляет имя базы данных. В некоторых продуктах он представляет имя сервера среды базы данных таблицы. Это поле может иметь значение 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 может предоставлять данные для этого столбца, когда новые строки вставляются (этим пользователем) в таблицу;

UPDATE = пользователь GRANTEE может изменять существующие данные в столбце;

REFERENCES = GRANTEE — может ссылаться на столбец во внешней таблице в связи «первичный-внешний ключ». Связи «первичный-внешний ключ» определяются с ограничениями таблицы.

IS_GRANTABLE

varchar(3)

Указывает, разрешено ли пользователю GRANTEE предоставлять разрешения другим пользователям (часто обозначается как разрешение «право передачи»). Может иметь значение YES, NO или NULL. Неизвестные значения или значения NULL относятся к источникам данных, где неприменимо использование разрешения «право передачи».

Разрешения

Необходимо разрешение SELECT для схемы.

Примеры

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

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