Permissões de tipo GRANT (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstâ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  

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

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)