Compartilhar via


Permissões de principal do banco de dados GRANT (Transact-SQL)

Status do tópico: algumas informações neste tópico são de pré-lançamento e estão sujeitas a mudanças em versões futuras. As informações de pré-lançamento descrevem novos recursos ou alterações em recursos existentes no Microsoft SQL Server 2014.

Concede permissões em um usuário de banco de dados, uma função de banco de dados ou uma função de aplicativo no SQL Server.

Aplica-se a: SQL Server (SQL Server 2008 até a versão atual), Banco de dados SQL do Windows Azure (versão inicial até a versão atual).

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

GRANT permission [ ,...n ]  
    ON 
    {  [ USER :: database_user ]
     | [ ROLE :: database_role ]
     | [ APPLICATION ROLE :: application_role ]
    }
    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 na entidade do banco de dados. Para obter uma lista de permissões, consulte a seção Comentários mais adiante neste tópico.

  • USER ::database_user
    Especifica a classe e o nome do usuário no qual a permissão está sendo concedida. O qualificador de escopo (::) é obrigatório.

  • ROLE ::database_role
    Especifica a classe e o nome da função na qual a permissão está sendo concedida. O qualificador de escopo (::) é obrigatório.

  • APPLICATION ROLE ::application_role

    Aplica-se a: SQL Server 2008 a SQL Server 2014.

    Especifica a classe e o nome da função de aplicativo na qual a permissão está sendo concedida. O qualificador de escopo (::) é obrigatório.

  • 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 da qual a entidade de segurança que executa essa consulta deriva 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 a SQL Server 2014.

    Especifica uma função de aplicativo.

  • Database_user_mapped_to_Windows_User

    Aplica-se a: SQL Server 2008 a SQL Server 2014.

    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 a SQL Server 2014.

    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 a SQL Server 2014.

    Especifica um usuário do banco de dados mapeado para um certificado.

  • Database_user_mapped_to_asymmetric_key

    Aplica-se a: SQL Server 2008 a SQL Server 2014.

    Especifica um usuário do banco de dados mapeado para uma chave assimétrica.

  • Database_user_with_no_login
    Especifica um usuário de banco de dados sem entidade de segurança correspondente no nível do servidor.

Comentários

Informações sobre as entidades de banco de dados estão visíveis na exibição do catálogo sys.database_principals. Informações sobre permissões do nível de banco de dados estão visíveis na exibição do catálogo.sys.database_permissions.

Permissões do usuário do banco de dados

Um usuário do banco de dados é um item protegível do nível do banco de dados contido pelo banco de dados que é seu pai na hierarquia de permissões. As permissões mais específicas e limitadas que podem ser concedidas em um usuário de banco de dados estão listadas na tabela a seguir, junto com as permissões mais gerais que as incluem implicitamente.

Permissão do usuário do banco de dados

Indicado pela permissão do usuário do banco de dados

Implícito na permissão de banco de dados

CONTROL

CONTROL

CONTROL

IMPERSONATE

CONTROL

CONTROL

ALTER

CONTROL

ALTER ANY USER

VIEW DEFINITION

CONTROL

VIEW DEFINITION

Permissões da função de banco de dados

Uma função de banco de dados é um item protegível do nível do banco de dados contido pelo banco de dados que é seu pai na hierarquia de permissões. As permissões mais específicas e limitadas que podem ser concedidas em um função de banco de dados estão listadas na tabela a seguir, junto com as permissões mais gerais que as incluem implicitamente.

Permissão da função de banco de dados

Indicado pela permissão da função de banco de dados

Implícito na permissão de banco de dados

CONTROL

CONTROL

CONTROL

TAKE OWNERSHIP

CONTROL

CONTROL

ALTER

CONTROL

ALTER ANY ROLE

VIEW DEFINITION

CONTROL

VIEW DEFINITION

Permissões de função de aplicativo

Uma função de aplicativo é um item protegível do nível do banco de dados contido pelo banco de dados que é seu pai na hierarquia de permissões. As permissões mais específicas e limitadas que podem ser concedidas em uma função de aplicativo são listadas na tabela a seguir, junto com as permissões mais gerais que as incluem implicitamente.

Permissão de função de aplicativo

Indicado pela permissão de função de aplicativo

Implícito na permissão de banco de dados

CONTROL

CONTROL

CONTROL

ALTER

CONTROL

ALTER ANY APPLICATION ROLE

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 granting_principal

Permissão adicional necessária

Usuário de banco de dados

Permissão IMPERSONATE no usuário, associação à função de banco de dados fixa db_securityadmin, associação à função de banco de dados fixa db_owner ou associação à função de servidor fixa sysadmin.

Usuário de banco de dados mapeado para um usuário do Windows

Permissão IMPERSONATE no usuário, associação à função de banco de dados fixa db_securityadmin, associação à função de banco de dados fixa db_owner ou associação à função de servidor fixa sysadmin.

Usuário de banco de dados mapeado para um grupo do Windows

Associação ao grupo do Windows, associação à função de banco de dados fixa db_securityadmin, associação à função de banco de dados fixa db_owner ou associação à função de servidor fixa sysadmin.

Usuário de banco de dados mapeado para um certificado

Associação à função de banco de dados fixa db_securityadmin, associação à função de banco de dados fixa db_owner ou associação à função de servidor fixa sysadmin.

Usuário de banco de dados mapeado para uma chave assimétrica

Associação à função de banco de dados fixa db_securityadmin, associação à função de banco de dados fixa db_owner ou associação à função de servidor fixa sysadmin.

Usuário de banco de dados não mapeado para nenhum principal de servidor

Permissão IMPERSONATE no usuário, associação à função de banco de dados fixa db_securityadmin, associação à função de banco de dados fixa db_owner ou associação à função de servidor fixa sysadmin.

Função de banco de dados

Permissão ALTER na função, associação à função de banco de dados fixa db_securityadmin, associação à função de banco de dados fixa db_owner ou associação à função de servidor fixa sysadmin.

Função de aplicativo

Permissão ALTER na função, associação à função de banco de dados fixa db_securityadmin, associação à função de banco de dados fixa db_owner ou associação à função de servidor fixa sysadmin.

As entidades que têm a permissão CONTROL em um protegível podem conceder a permissão nesse protegível.

Os usuários autorizados da permissão CONTROL em um banco de dados, como os membros da função de banco de dados fixa db_owner, podem conceder qualquer permissão a qualquer protegível do banco de dados.

Exemplos

A.Concessão da permissão CONTROL em um usuário para outro usuário

O exemplo a seguir concede a permissão CONTROL no usuário AdventureWorks2012 Wanida para o usuário RolandX.

USE AdventureWorks2012;
GRANT CONTROL ON USER::Wanida TO RolandX;
GO

B.Concessão da permissão VIEW DEFINITION em uma função para um usuário com GRANT OPTION

O exemplo a seguir concede permissão VIEW DEFINITION em AdventureWorks2012 função SammamishParking junto com GRANT OPTION para usuário de banco de dados JinghaoLiu.

USE AdventureWorks2012;
GRANT VIEW DEFINITION ON ROLE::SammamishParking 
    TO JinghaoLiu WITH GRANT OPTION;
GO

C.Concessão da permissão IMPERSONATE em um usuário para uma função de aplicativo

O exemplo a seguir concede permissão no usuário IMPERSONATE HamithaL para AdventureWorks2012 função de aplicativo AccountsPayable17.

Aplica-se a: SQL Server 2008 a SQL Server 2014.

USE AdventureWorks2012;
GRANT IMPERSONATE ON USER::HamithaL TO AccountsPayable17;
GO  

Consulte também

Referência

Permissões de principal do banco de dados DENY (Transact-SQL)

Permissões de principal do banco de dados REVOKE (Transact-SQL)

sys.database_principals (Transact-SQL)

sys.database_permissions (Transact-SQL)

CREATE USER (Transact-SQL)

CREATE APPLICATION ROLE (Transact-SQL)

CREATE ROLE (Transact-SQL)

GRANT (Transact-SQL)

Conceitos

Permissões (Mecanismo de Banco de Dados)

Entidades (Mecanismo de Banco de Dados)