GRANT, предоставление разрешений на учетные данные для базы данных (Transact-SQL)

Область применения: SQL Server 2017 (14.x) и более поздних версий База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics

Предоставляет разрешения на учетные данные для базы данных.

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

Синтаксис

GRANT permission  [ ,...n ]    
    ON DATABASE SCOPED CREDENTIAL :: credential_name   
    TO principal [ ,...n ] [ WITH GRANT OPTION ]   
    [ AS granting_principal ]   

Примечание.

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

Аргументы

permission

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

ON DATABASE SCOPED CREDENTIAL ::credential_name

Указывает учетные данные для базы данных, для которых предоставляется разрешение. Квалификатор области "::" является обязательным.

database_principal

Участник, которому предоставляется разрешение. Один из следующих:

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

GRANT OPTION

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

AS granting_principal

Указывает участника, от которого участник, выполняющий данный запрос, наследует право на предоставление разрешения. Один из следующих:

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

Замечания

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

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

Примечание.

В Azure Synapse Analytics предоставление учетных данных в области базы данных поддерживается только для бессерверных пулов SQL.

Разрешения

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

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

AS granting_principal Необходимо дополнительное разрешение
пользователь базы данных; Разрешение 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.

Владельцы объектов могут предоставлять разрешения на объекты, которыми они владеют. Участники, имеющие разрешение CONTROL на защищаемый объект, могут предоставлять разрешение на этот защищаемый объект.

Участники, которым предоставлено разрешение CONTROL SERVER, такие как члены предопределенной роли сервера sysadmin, могут предоставлять любое разрешение для любого защищаемого объекта сервера. Участники, получившие разрешение CONTROL для базы данных, такие как члены предопределенной роли базы данных db_owner, могут предоставлять любое разрешение для любого защищаемого объекта в базе данных. Владельцы разрешения CONTROL, связанного со схемой, могут предоставлять любые разрешения на работу с любыми объектами, содержащимися в данной схеме.

Следующие шаги

GRANT (Transact-SQL)
REVOKE, отмена учетных данных для базы данных (Transact-SQL)
DENY, запрет разрешений на учетные данные для базы данных (Transact-SQL)
Разрешения (ядро СУБД)
Субъекты (ядро СУБД)
Иерархия средств шифрования