GRANT, предоставление разрешений на сертификаты (Transact-SQL)
Предоставляет разрешения на сертификат.
Синтаксис
GRANT permission [ ,...n ]
ON CERTIFICATE :: certificate_name
TO principal [ ,...n ] [ WITH GRANT OPTION ]
[ AS granting_principal ]
Аргументы
permission
Указывает разрешение, которое может быть предоставлено на сертификат. Разрешения перечислены ниже.ON CERTIFICATE **::**certificate_namecertificate_name
Указывает сертификат, на который предоставляется разрешение. Требуется классификатор области «::».database_principal
Указывает участника, которому предоставляется разрешение. Это может быть:пользователь базы данных
роль базы данных
роль приложения
пользователь базы данных, сопоставленный имени входа Windows
пользователь базы данных, сопоставленный группе Windows
пользователь базы данных, сопоставленный сертификату
пользователь базы данных, сопоставленный асимметричному ключу
пользователь базы данных, не сопоставленный участнику [системы безопасности] на уровне сервера.
GRANT OPTION
Показывает, что участнику будет дана возможность предоставлять указанное разрешение другим участникам.AS granting_principal
Указывает участника, от которого участник, выполняющий данный запрос, наследует право на предоставление разрешения. Это может быть:пользователь базы данных
роль базы данных
роль приложения
пользователь базы данных, сопоставленный имени входа Windows
пользователь базы данных, сопоставленный группе Windows
пользователь базы данных, сопоставленный сертификату
пользователь базы данных, сопоставленный асимметричному ключу
пользователь базы данных, не сопоставленный участнику [системы безопасности] на уровне сервера.
Замечания
Сертификат является защищаемым объектом уровня базы данных, содержащимся в базе данных, являющейся его родительским элементом в иерархии разрешений. Наиболее специфичные и ограниченные разрешения, которые можно предоставлять на сертификат, перечислены ниже вместе с более общими разрешениями, неявно содержащими их.
Разрешение сертификата |
Содержится в разрешении сертификата |
Содержится в разрешении базы данных |
---|---|---|
CONTROL |
CONTROL |
CONTROL |
TAKE OWNERSHIP |
CONTROL |
CONTROL |
ALTER |
CONTROL |
ALTER ANY CERTIFICATE |
REFERENCES |
CONTROL |
REFERENCES |
VIEW DEFINITION |
CONTROL |
VIEW DEFINITION |
Разрешения
Объект, предоставляющий разрешение (или участник, указанный аргументом 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 на схему могут предоставлять любые разрешения на любые объекты, содержащиеся в данной схеме.