Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
Azure Synapse Analytics
Система платформы аналитики (PDW)
Конечная точка SQL аналитики в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в Microsoft Fabric
Предоставляет разрешения на роль пользователя базы данных, роли базы данных или приложения в SQL Server.
Соглашения о синтаксисе Transact-SQL
Syntax
GRANT permission [ ,...n ]
ON
{ [ USER :: database_user ]
| [ ROLE :: database_role ]
| [ APPLICATION ROLE :: application_role ]
}
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
Arguments
permission
Указывает разрешение, которое может быть предоставлено участнику базы данных. Список разрешений см. в подразделе "Примечания" далее в этом разделе.
ПОЛЬЗОВАТЕЛЬ ::database_user
Указывает класс и имя пользователя, которому предоставляется разрешение. Квалификатор области (::) является обязательным.
РОЛЬ ::database_role
Указывает класс и имя роли, которой предоставляется разрешение. Квалификатор области (::) является обязательным.
РОЛЬ ПРИЛОЖЕНИЯ ::application_role
Указывает класс и имя роли приложения, которой предоставляется разрешение. Квалификатор области (::) является обязательным.
ПАРАМЕТР GRANT
Показывает, что участнику будет дана возможность предоставлять указанное разрешение другим участникам.
КАК database_principal <>
Указывает участника, от которого участник, выполняющий данный запрос, наследует право на предоставление разрешения.
Database_user
Указывает пользователя базы данных.
Database_role
Указывает роль базы данных.
Application_role
Область применения: SQL Server 2008 (10.0.x) и более поздних версий База данных SQL.
Указывает роль приложения.
Database_user_mapped_to_Windows_User
Указывает пользователя базы данных, сопоставленного с пользователем Windows.
Database_user_mapped_to_Windows_Group
Указывает пользователя базы данных, сопоставленного с группой Windows.
Database_user_mapped_to_certificate
Указывает пользователя базы данных, сопоставленного с сертификатом.
Database_user_mapped_to_asymmetric_key
Указывает пользователя базы данных, сопоставленного с асимметричным ключом.
Database_user_with_no_login
Указывает пользователя базы данных, не сопоставленного с субъектом серверного уровня.
Remarks
Данные о субъектах базы данных отображаются в представлении каталога sys.database_principals. Данные о разрешениях уровня базы данных отображаются в представлении каталога sys.database_permissions.
Разрешения пользователя базы данных
Пользователь базы данных — это защищаемый объект уровня базы данных, содержащийся в базе данных, являющейся родительским элементом в иерархии разрешений. Наиболее специфичные и ограниченные разрешения, которые можно предоставлять пользователю базы данных, перечислены в следующей таблице вместе с более общими разрешениями, неявно их содержащими.
| Разрешение пользователя базы данных | Содержится в разрешении пользователя базы данных | Содержится в разрешении базы данных |
|---|---|---|
| CONTROL | CONTROL | CONTROL |
| IMPERSONATE | CONTROL | CONTROL |
| ALTER | CONTROL | ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ |
| ПРЕДСТАВЛЕНИЕ ОПРЕДЕЛЕНИЯ | CONTROL | ПРЕДСТАВЛЕНИЕ ОПРЕДЕЛЕНИЯ |
Разрешения роли базы данных
Роль базы данных — это защищаемый объект уровня базы данных, содержащийся в базе данных, являющейся родительским элементом в иерархии разрешений. Наиболее специфичные и ограниченные разрешения, которые можно предоставлять роли базы данных, перечислены в следующей таблице вместе с более общими разрешениями, неявно их содержащими.
| Разрешение роли базы данных | Содержится в разрешении роли базы данных | Содержится в разрешении базы данных |
|---|---|---|
| CONTROL | CONTROL | CONTROL |
| ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ | CONTROL | CONTROL |
| ALTER | CONTROL | ИЗМЕНИТЬ ЛЮБУЮ РОЛЬ |
| ПРЕДСТАВЛЕНИЕ ОПРЕДЕЛЕНИЯ | CONTROL | ПРЕДСТАВЛЕНИЕ ОПРЕДЕЛЕНИЯ |
Разрешения роли приложения
Роль приложения — это защищаемый объект уровня базы данных, содержащийся в базе данных, являющейся родительским элементом в иерархии разрешений. Наиболее специфичные и ограниченные разрешения, которые можно предоставлять роли приложения, перечислены далее вместе с более общими разрешениями, неявно их содержащими.
| Разрешение роли приложения | Содержится в разрешении роли приложения | Содержится в разрешении базы данных |
|---|---|---|
| CONTROL | CONTROL | CONTROL |
| ALTER | CONTROL | ИЗМЕНИТЬ ЛЮБУЮ РОЛЬ ПРИЛОЖЕНИЯ |
| ПРЕДСТАВЛЕНИЕ ОПРЕДЕЛЕНИЯ | CONTROL | ПРЕДСТАВЛЕНИЕ ОПРЕДЕЛЕНИЯ |
Permissions
Объект, предоставляющий разрешение (или участник, указанный параметром AS), должен иметь либо само разрешение, выданное с помощью параметра GRANT OPTION, либо разрешение более высокого уровня, которое неявно включает предоставляемое.
При использовании параметра 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 на базу данных, такие как члены предопределенной роли базы данных db_owner, могут предоставлять любое разрешение на любой защищаемый объект в базе данных.
Examples
A. Предоставление разрешения CONTROL на пользователя другому пользователю
В следующем примере пользователю CONTROL предоставляется разрешение AdventureWorks2025 на пользователя Wanida базы данных RolandX.
GRANT CONTROL ON USER::Wanida TO RolandX;
GO
B. Предоставление пользователю разрешения VIEW DEFINITION на роль с параметром GRANT OPTION
В следующем примере разрешение VIEW DEFINITION на роль AdventureWorks2025 базы данных SammamishParking, с параметром GRANT OPTION, предоставляется пользователю этой базы данных, JinghaoLiu.
GRANT VIEW DEFINITION ON ROLE::SammamishParking
TO JinghaoLiu WITH GRANT OPTION;
GO
C. Предоставление роли приложения разрешения IMPERSONATE на пользователя
В следующем примере показано предоставление разрешения IMPERSONATE пользователю HamithaL на роль приложения AdventureWorks2025AccountsPayable17.
Область применения: SQL Server 2008 (10.0.x) и более поздних версий База данных SQL.
GRANT IMPERSONATE ON USER::HamithaL TO AccountsPayable17;
GO
См. также
Основные права базы данных ЗАПРЕТИТЬ (Transact-SQL)
ОТМЕНА разрешений субъекта базы данных (Transact-SQL)
sys.database_principals (Transact-SQL)
sys.database_permissions (Transact-SQL)
СОЗДАНИЕ ПОЛЬЗОВАТЕЛЯ (Transact-SQL)
СОЗДАТЬ РОЛЬ ПРИЛОЖЕНИЯ (Transact-SQL)
СОЗДАТЬ РОЛЬ (Transact-SQL)
ГРАНТ (Transact-SQL)
Разрешения (ядро СУБД)
Субъекты (ядро СУБД)