GRANT, предоставление разрешений на тип (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
Аргументы
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
Задает роль приложения.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
Задает пользователя базы данных без соответствующего участника уровня сервера.
Замечания
Тип — это защищаемое на уровне схемы содержимое схемы, являющейся его родителем в иерархии разрешений.
Важно! |
---|
Разрешения GRANT, DENY, и REVOKE не применяются к системным типам. Определяемым пользователем типам можно предоставлять разрешения. Дополнительные сведения об определяемых пользователем типах см. в разделе Работа с определяемыми пользователем типами в SQL Server. |
Наиболее специфичные и ограниченные разрешения, которые можно предоставлять на тип, перечислены в следующей таблице вместе с более общими разрешениями, неявно содержащими их.
Разрешение типа |
Содержится в разрешении типа |
Содержится в разрешении схемы |
---|---|---|
CONTROL |
CONTROL |
CONTROL |
EXECUTE |
CONTROL |
EXECUTE |
REFERENCES |
CONTROL |
REFERENCES |
TAKE OWNERSHIP |
CONTROL |
CONTROL |
VIEW DEFINITION |
CONTROL |
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