GRANT, предоставление разрешений на тип (Transact-SQL)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Предоставляет разрешения на тип.

Соглашения о синтаксисе Transact-SQL

Синтаксис

GRANT permission  [ ,...n ] ON TYPE :: [ schema_name . ] type_name  
    TO <database_principal> [ ,...n ]  
    [ WITH GRANT OPTION ]  
    [ AS <database_principal> ]  
  
<database_principal> ::=   
        Database_user   
    | Database_role   
        | Application_role   
    | Database_user_mapped_to_Windows_User   
    | Database_user_mapped_to_Windows_Group   
    | Database_user_mapped_to_certificate   
    | Database_user_mapped_to_asymmetric_key   
    | Database_user_with_no_login  

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

permission
Указывает разрешение, которое может быть предоставлено на тип. Список разрешений см. в подразделе "Примечания" далее в этом разделе.

ON TYPE :: [ schema_name. ] type_name
Указывает тип, на который выдается разрешение. Квалификатор области (::) является обязательным. Если не указан аргумент schema_name, подразумевается схема по умолчанию. Если указан аргумент schema_name, обязательно указание квалификатора области схемы (.).

TO <database_principal> указывает субъект, которому предоставляется разрешение.

WITH GRANT OPTION
Показывает, что участнику будет дана возможность предоставлять указанное разрешение другим участникам.

AS <database_principal> — указывает участника, от которого наследует право на предоставление разрешения тот участник, который выполняет данный запрос.

Database_user
Указывает пользователя базы данных.

Database_role
Указывает роль базы данных.

Application_role
Область применения: SQL Server 2008 (10.0.x) и более поздних версий База данных SQL

Указывает роль приложения.

Database_user_mapped_to_Windows_User
Область применения: SQL Server 2008 (10.0.x) и более поздних версий

Указывает пользователя базы данных, сопоставленного с пользователем Windows.

Database_user_mapped_to_Windows_Group
Область применения: SQL Server 2008 (10.0.x) и более поздних версий

Указывает пользователя базы данных, сопоставленного с группой Windows.

Database_user_mapped_to_certificate
Область применения: SQL Server 2008 (10.0.x) и более поздних версий

Указывает пользователя базы данных, сопоставленного с сертификатом.

Database_user_mapped_to_asymmetric_key
Область применения: SQL Server 2008 (10.0.x) и более поздних версий

Указывает пользователя базы данных, сопоставленного с асимметричным ключом.

Database_user_with_no_login
Указывает пользователя базы данных, не сопоставленного с субъектом серверного уровня.

Замечания

Тип — это защищаемый объект уровня схемы; он содержится в схеме, являющейся его родителем в иерархии разрешений.

Важно!

Разрешения GRANT, DENY и REVOKE не применяются к системным типам. Определяемым пользователем типам можно предоставлять разрешения. Дополнительные сведения об определяемых пользователем типах см. в разделе Работа с определяемыми пользователем типами в SQL Server.

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

Разрешение типа Содержится в разрешении типа данных Содержится в разрешении схемы
ПРОИЗВОДИТЕЛЬНОСТИ ПРОИЗВОДИТЕЛЬНОСТИ ПРОИЗВОДИТЕЛЬНОСТИ
ВЫПОЛНИТЬ ПРОИЗВОДИТЕЛЬНОСТИ ВЫПОЛНИТЬ
ССЫЛКИ ПРОИЗВОДИТЕЛЬНОСТИ ССЫЛКИ
TAKE OWNERSHIP ПРОИЗВОДИТЕЛЬНОСТИ ПРОИЗВОДИТЕЛЬНОСТИ
VIEW DEFINITION ПРОИЗВОДИТЕЛЬНОСТИ VIEW DEFINITION

Разрешения

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

При использовании параметра AS налагаются следующие дополнительные требования.

AS Необходимо дополнительное разрешение
пользователь базы данных; Разрешение IMPERSONATE для пользователя, членство в предопределенной роли базы данных db_securityadmin, членство в предопределенной роли базы данных db_owner или членство в предопределенной роли сервера sysadmin.
пользователь базы данных, сопоставленный с именем входа Windows; Разрешение IMPERSONATE для пользователя, членство в предопределенной роли базы данных db_securityadmin, членство в предопределенной роли базы данных db_owner или членство в предопределенной роли сервера sysadmin.
пользователь базы данных, сопоставленный с группой Windows; Членство в группе Windows, членство в предопределенной роли базы данных db_securityadmin, членство в предопределенной роли базы данных db_owner или членство в предопределенной роли сервера sysadmin.
пользователь базы данных, сопоставленный с сертификатом; Членство в предопределенной роли базы данных db_securityadmin, членство в предопределенной роли базы данных db_owner или членство в предопределенной роли сервера sysadmin.
пользователь базы данных, сопоставленный с асимметричным ключом; Членство в предопределенной роли базы данных db_securityadmin, членство в предопределенной роли базы данных db_owner или членство в предопределенной роли сервера sysadmin.
Пользователь базы данных, не сопоставленный ни с одним участником на уровне сервера Разрешение IMPERSONATE для пользователя, членство в предопределенной роли базы данных db_securityadmin, членство в предопределенной роли базы данных db_owner или членство в предопределенной роли сервера sysadmin.
роль базы данных; Разрешение ALTER на роль, членство в предопределенной роли базы данных db_securityadmin, предопределенной роли базы данных db_owner или предопределенной роли сервера sysadmin.
Роль приложения Разрешение ALTER на роль, членство в предопределенной роли базы данных db_securityadmin, предопределенной роли базы данных db_owner или предопределенной роли сервера sysadmin.

Примеры

В следующем примере предоставляется разрешение VIEW DEFINITION с аргументом GRANT OPTION для определенного пользователем типа PhoneNumber пользователю KhalidR. PhoneNumber расположен в схеме Telemarketing.

GRANT VIEW DEFINITION ON TYPE::Telemarketing.PhoneNumber   
    TO KhalidR WITH GRANT OPTION;  
GO  

См. также

Разрешения типа DENY (Transact-SQL)
РАЗРЕШЕНИЯ ТИПА REVOKE (Transact-SQL)
CREATE TYPE (Transact-SQL)
Разрешения (ядро СУБД)
Защищаемые объекты
Субъекты (ядро СУБД)