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 предоставлять разрешения другим пользователям (часто обозначается как разрешение «grant with grant»). Может иметь значение YES, NO или NULL. Неизвестное значение или значение NULL, указывает на источник данных, для которого не применимо разрешение «grant with grant».

Замечания

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

Разрешения

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

Примеры

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

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