Permissões de tipo GRANT (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure
Concede permissões em um tipo.
Convenções de sintaxe de Transact-SQL
Sintaxe
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
Argumentos
permission
Especifica uma permissão que pode ser concedida em um tipo. Para obter uma lista de permissões, consulte a seção Comentários mais adiante neste tópico.
ON TYPE :: [ schema_name. ] type_name
Especifica o tipo em que a permissão está sendo concedida. O qualificador de escopo ( :: ) é obrigatório. Se schema_name não for especificado, o esquema padrão será usado. Se schema_name for especificado, o qualificador de escopo de esquema ( . ) será obrigatório.
TO <database_principal> Especifica a entidade de segurança para a qual a permissão está sendo concedida.
WITH GRANT OPTION
Indica que o principal também terá a capacidade de conceder a permissão especificada a outros principais.
AS <database_principal> Especifica uma entidade de segurança por meio da qual a entidade de segurança que executa essa consulta obtém seu direito de conceder a permissão.
Database_user
Especifica um usuário do banco de dados.
Database_role
Especifica uma função de banco de dados.
Application_role
Aplica-se a: SQL Server 2008 (10.0.x) e posterior e Banco de Dados SQL
Especifica uma função de aplicativo.
Database_user_mapped_to_Windows_User
Aplica-se a: SQL Server 2008 (10.0.x) e posterior
Especifica um usuário do banco de dados mapeado para um usuário do Windows.
Database_user_mapped_to_Windows_Group
Aplica-se a: SQL Server 2008 (10.0.x) e posterior
Especifica um usuário do banco de dados mapeado para um grupo do Windows.
Database_user_mapped_to_certificate
Aplica-se a: SQL Server 2008 (10.0.x) e posterior
Especifica um usuário do banco de dados mapeado para um certificado.
Database_user_mapped_to_asymmetric_key
Aplica-se a: SQL Server 2008 (10.0.x) e posterior
Especifica um usuário do banco de dados mapeado para uma chave assimétrica.
Database_user_with_no_login
Especifica um usuário do banco de dados sem nenhuma entidade de segurança correspondente no nível de servidor.
Comentários
Um tipo é um protegível no nível de esquema contido no esquema pai na hierarquia de permissões.
Importante
As permissões GRANT, DENY, e REVOKE não se aplicam a tipos de sistema. Podem ser concedidas permissões a tipos definidos pelo usuário. Para obter mais informações sobre tipos definidos pelo usuário, veja Trabalhando com tipos definidos pelo usuário no SQL Server.
As permissões mais específicas e limitadas que podem ser concedidas em um tipo são listadas na tabela a seguir, junto com as permissões mais gerais que as contêm implicitamente.
Tipo de permissão | Implícita na permissão de tipo | Implícito na permissão de esquema |
---|---|---|
CONTROL | CONTROL | CONTROL |
Execute | CONTROL | Execute |
REFERENCES | CONTROL | REFERENCES |
TAKE OWNERSHIP | CONTROL | CONTROL |
VIEW DEFINITION | CONTROL | VIEW DEFINITION |
Permissões
O concessor (ou a entidade de segurança especificada com a opção AS) deve ter a própria permissão com GRANT OPTION ou uma permissão superior que tenha a permissão que está sendo concedida implícita.
Se você estiver usando a opção AS, os requisitos adicionais a seguir serão aplicáveis.
AS | Permissão adicional necessária |
---|---|
Usuário de banco de dados | A permissão IMPERSONATE no usuário, associação na função de banco de dados fixa db_securityadmin, associação na função de banco de dados fixa db_owner ou associação na função de servidor fixa sysadmin. |
Usuário de banco de dados mapeado para um logon do Windows | A permissão IMPERSONATE no usuário, associação na função de banco de dados fixa db_securityadmin, associação na função de banco de dados fixa db_owner ou associação na função de servidor fixa sysadmin. |
Usuário de banco de dados mapeado para um grupo do Windows | Associação no grupo do Windows, associação na função de banco de dados fixa db_securityadmin, associação na função de banco de dados fixa db_owner ou associação na função de servidor fixa sysadmin. |
Usuário de banco de dados mapeado para um certificado | Associação na função de banco de dados fixa db_securityadmin, associação na função de banco de dados fixa db_owner ou associação na função de servidor fixa sysadmin. |
Usuário de banco de dados mapeado para uma chave assimétrica | Associação na função de banco de dados fixa db_securityadmin, associação na função de banco de dados fixa db_owner ou associação na função de servidor fixa sysadmin. |
Usuário de banco de dados não mapeado para nenhuma entidade de segurança de servidor | A permissão IMPERSONATE no usuário, associação na função de banco de dados fixa db_securityadmin, associação na função de banco de dados fixa db_owner ou associação na função de servidor fixa sysadmin. |
Função de banco de dados | Permissão ALTER na função, associação na função de banco de dados fixa db_securityadmin, associação na função de banco de dados fixa db_owner ou associação na função de servidor fixa sysadmin. |
Função de aplicativo | Permissão ALTER na função, associação na função de banco de dados fixa db_securityadmin, associação na função de banco de dados fixa db_owner ou associação na função de servidor fixa sysadmin. |
Exemplos
O exemplo a seguir concede a permissão VIEW DEFINITION
com GRANT OPTION
no tipo PhoneNumber
definido pelo usuário ao usuário KhalidR
. PhoneNumber
está localizado no esquema Telemarketing
.
GRANT VIEW DEFINITION ON TYPE::Telemarketing.PhoneNumber
TO KhalidR WITH GRANT OPTION;
GO
Consulte Também
Permissões de tipo DENY (Transact-SQL)
Permissões de tipo REVOKE (Transact-SQL)
CREATE TYPE (Transact-SQL)
Permissões (Mecanismo de Banco de Dados)
Protegíveis
Entidades (Mecanismo de Banco de Dados)