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 этот столбец представляет имя базы данных. В некоторых продуктах он представляет имя сервера среды базы данных таблицы. Это поле может иметь значение 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 предоставлять разрешения на доступ другим пользователям (часто обозначается как разрешение «grant with grant»). Может иметь значение YES, NO или NULL. Неизвестные значения или значения NULL относятся к источникам данных, где неприменимо использование разрешения «право передачи». |
Разрешения
Необходимо разрешение SELECT для схемы.
Примеры
Следующий пример возвращает сведения о правах доступа столбца для таблицы HumanResources.Department в базе данных AdventureWorks2012 на связанном сервере Seattle1.
EXEC sp_column_privileges_ex @table_server = 'Seattle1',
@table_name = 'Department',
@table_schema = 'HumanResources',
@table_catalog ='AdventureWorks2012';