sp_column_privileges (Transact-SQL)

Применяется к:SQL ServerAzure SQL DatabaseAzure, управляемому экземпляру SQL Azure

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

Соглашения о синтаксисе 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 привилегии ищут таблицу с указанным table_name владельцем базы данных. Если такая таблица существует, возвращаются ее столбцы.

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

[ ] @column_name= 'column'
Единственный столбец, который используется при получении только одного столбца сведений о каталоге. столбец имеет значение nvarchar(384) с значением NULL по умолчанию. Если столбец не указан, возвращаются все столбцы. В SQL Server столбец представляет имя столбца , указанное в таблице sys.columns. Столбец может включать подстановочные знаки с использованием шаблонов сопоставления подстановочных знаков базовой СУБД. Для максимальной совместимости клиент шлюза должен использовать только согласование установленного образца 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 AdventureWorks2022;  
GO  
EXEC sp_column_privileges @table_name = 'Employee'   
    ,@table_owner = 'HumanResources'  
    ,@table_qualifier = 'AdventureWorks2022'  
    ,@column_name = 'SalariedFlag';  

См. также

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