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
Аргументы
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)
Разрешения (ядро СУБД)
Защищаемые объекты
Субъекты (ядро СУБД)