sp_column_privileges (Transact-SQL)

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

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

Значок ссылки на раздел Cинтаксические обозначения в 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 может предоставлять данные для этого столбца, когда новые строки вставляются (пользователем GRANTEE) в таблицу.

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

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

IS_GRANTABLE

varchar(3)

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

Замечания

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

Разрешения

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

Примеры

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

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

См. также

Справочник

Инструкция GRANT (Transact-SQL)

REVOKE (Transact-SQL)

Системные хранимые процедуры (Transact-SQL)