sp_column_privileges (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
Возвращает сведения о правах доступа к столбцам для одной таблицы текущего окружения.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sp_column_privileges
[ @table_name = ] N'table_name'
[ , [ @table_owner = ] N'table_owner' ]
[ , [ @table_qualifier = ] N'table_qualifier' ]
[ , [ @column_name = ] N'column_name' ]
[ ; ]
Аргументы
[ @table_name = ] N'table_name'
Таблица, используемая для возврата сведений о каталоге. @table_name — sysname без значения по умолчанию. Сопоставление шаблонов подстановочных знаков не поддерживается.
[ @table_owner = ] N'table_owner'
Владелец таблицы, используемой для возврата сведений о каталоге. @table_owner — sysname с значением по умолчаниюNULL
. Сопоставление шаблонов подстановочных знаков не поддерживается. Если @table_owner не задано, применяются правила видимости таблиц по умолчанию базовой системы управления базами данных (СУБД).
Если текущему пользователю принадлежит таблица с указанным именем, возвращаются столбцы этой таблицы. Если @table_owner не указан, а текущий пользователь не владеет таблицей с указанным @table_name, sp_column
привилегии ищут таблицу с указанным @table_name владельцем базы данных. Если такая таблица существует, возвращаются ее столбцы.
[ @table_qualifier = ] N'table_qualifier'
Имя квалификатора таблицы. @table_qualifier имеет имя sysname с значением по умолчаниюNULL
. Различные продукты СУБД поддерживают трехкомпонентное именование таблиц (<qualifier>.<owner>.<name>
). В SQL Server этот столбец представляет имя базы данных. В некоторых СУБД он представляет имя сервера в среде базы данных, где находится таблица.
[ @column_name = ] N'column_name'
Один столбец, используемый при получении только одного столбца сведений каталога. @column_name — nvarchar(384) с значением по умолчаниюNULL
. Если @column_name не указан, возвращаются все столбцы. В SQL Server @column_name представляет имя столбца, как указано в sys.columns
таблице. @column_name могут включать подстановочные знаки с помощью шаблонов сопоставления подстановочных знаков базовой СУБД. Для максимальной совместимости клиент шлюза должен предполагать сопоставление только стандартных шаблонов ISO ( %
символов и _
подстановочных знаков).
Результирующий набор
sp_column_privileges
эквивалентен SQLColumnPrivileges
в ODBC. Возвращаемые результаты упорядочены по TABLE_QUALIFIER
, TABLE_OWNER
, TABLE_NAME
и COLUMN_NAME
PRIVILEGE
.
Имя столбца | Тип данных | Description |
---|---|---|
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 AdventureWorks2022;
GO
EXEC sp_column_privileges
@table_name = 'Employee',
@table_owner = 'HumanResources',
@table_qualifier = 'AdventureWorks2022',
@column_name = 'SalariedFlag';