sp_column_privileges (Transact-SQL)

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

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

Синтаксис

sp_column_privileges [ @table_name = ] 'table_name' 
     [ , [ @table_owner = ] 'table_owner' ] 
     [ , [ @table_qualifier = ] 'table_qualifier' ] 
     [ , [ @column_name = ] 'column' ]

Аргументы

  • [ @table_name = ] 'table_name'
    Таблица, используемая для возвращения сведений о каталоге. Аргумент table_name имеет тип sysname и не имеет значения по умолчанию. Сопоставление по шаблону не поддерживается.

  • [ @table_owner = ] 'table_owner'
    Владелец таблицы, используемой для возвращения сведений о каталоге. Аргумент table_owner имеет тип sysname и значение по умолчанию NULL. Сопоставление по шаблону не поддерживается. Если аргумент table_owner не задан, применяются правила видимости таблиц по умолчанию для используемой СУБД.

    Если текущему пользователю принадлежит таблица с указанным именем, возвращаются столбцы этой таблицы. Если аргумент table_owner не указан и текущему пользователю не принадлежит указанная в аргументе table_name таблица, то хранимая процедура sp_column privileges выполняет поиск таблицы с указанным именем table_name, принадлежащей владельцу базы данных. Если такая таблица существует, возвращаются ее столбцы.

  • [ @table_qualifier = ] 'table_qualifier'
    Имя квалификатора таблицы. Аргумент table_qualifier имеет тип sysname и значение по умолчанию NULL. Различные продукты СУБД поддерживают трехкомпонентные имена таблиц (qualifier**.owner.**name). В SQL Server этот столбец представляет имя базы данных. В некоторых продуктах он представляет имя сервера среды базы данных таблицы.

  • [ @column_name = ] 'column'
    Единственный столбец, который используется, если получен только один столбец сведений о каталоге. Аргумент column имеет тип nvarchar(384) и значение по умолчанию NULL. Если аргумент column не указан, возвращаются все столбцы. В SQL Server аргумент column представляет имя столбца в том виде, в котором оно указано в таблице sys.columns. Аргумент column может включать символы-шаблоны, используя шаблоны совпадения базовой СУБД. Для максимальной совместимости клиент шлюза должен использовать только совпадения установленного образца ISO (символы-шаблоны % и _).

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

Хранимая процедура sp_column_privileges эквивалентна функции SQLColumnPrivileges в ODBC. Возвращаемые результаты сортируются по столбцам TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME, COLUMN_NAME и PRIVILEGE.

Имя столбца

Тип данных

Описание

TABLE_QUALIFIER

sysname

Имя квалификатора таблицы. Это поле может иметь значение NULL.

TABLE_OWNER

sysname

Имя владельца таблицы. Это поле всегда возвращает значение.

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. В SQL Server этот столбец всегда содержит имя пользователя базы данных из таблицы sysusers. Это поле всегда возвращает значение.

PRIVILEGE

varchar(32)

Одно из доступных разрешений на доступ к столбцу. Разрешениями для столбца может быть одно из следующих значений (или другие значения, поддерживаемые источником данных для определенных реализаций):

SELECT = пользователь GRANTEE может получать данные для столбцов;

INSERT = пользователь GRANTEE может предоставлять данные для этого столбца, когда новые строки вставляются (этим пользователем) в таблицу;

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

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

IS_GRANTABLE

varchar(3)

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

Замечания

В SQL Server разрешения предоставляются инструкцией GRANT и отзываются инструкцией REVOKE.

Разрешения

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

Примеры

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

USE AdventureWorks2008R2;
GO
EXEC sp_column_privileges @table_name = 'Employee' 
    ,@table_owner = 'HumanResources'
    ,@table_qualifier = 'AdventureWorks2008R2'
    ,@column_name = 'SalariedFlag';