Share via


Permissões de servidor GRANT (Transact-SQL)

Concede permissões em um servidor.

Aplica-se a: SQL Server (do SQL Server 2008 à versão atual).

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

Sintaxe

GRANT permission [ ,...n ] 
    TO <grantee_principal> [ ,...n ] [ WITH GRANT OPTION ]
    [ AS <grantor_principal> ]

<grantee_principal> ::= SQL_Server_login 
    | SQL_Server_login_mapped_to_Windows_login
    | SQL_Server_login_mapped_to_Windows_group
    | SQL_Server_login_mapped_to_certificate
    | SQL_Server_login_mapped_to_asymmetric_key
    | server_role 

<grantor_principal> ::= SQL_Server_login 
    | SQL_Server_login_mapped_to_Windows_login
    | SQL_Server_login_mapped_to_Windows_group
    | SQL_Server_login_mapped_to_certificate
    | SQL_Server_login_mapped_to_asymmetric_key
    | server_role

Argumentos

  • permission
    Especifica uma permissão que pode ser concedida em um servidor. Para obter uma lista de permissões, consulte a seção Comentários mais adiante neste tópico.

  • TO <grantee_principal>
    Especifica o principal ao qual a permissão está sendo concedida.

  • AS <grantor_principal>
    Especifica o principal do qual o principal que executa esta consulta deriva seu direito de conceder a permissão.

  • WITH GRANT OPTION
    Indica que o principal também terá a capacidade de conceder a permissão especificada a outros principais.

  • SQL_Server_login
    Especifica um logon do SQL Server.

  • SQL_Server_login_mapped_to_Windows_login
    Especifica um logon do SQL Server mapeado para um logon do Windows.

  • SQL_Server_login_mapped_to_Windows_group
    Especifica um logon do SQL Server mapeado para um grupo do Windows.

  • SQL_Server_login_mapped_to_certificate
    Especifica um logon do SQL Server mapeado para um certificado do Windows.

  • SQL_Server_login_mapped_to_asymmetric_key
    Especifica um logon do SQL Server mapeado para uma chave assimétrica.

  • server_role
    Especifica uma função de servidor definida pelo usuário.

Comentários

As permissões no escopo de servidor podem ser concedidas somente quando o banco de dados atual é master.

As informações sobre permissões de servidor podem ser vistas na exibição do catálogo sys.server_permissions e as informações sobre principais de servidor podem ser vistas na exibição do catálogo sys.server_principals. As informações sobre a associação de funções de servidor podem ser vistas na exibição do catálogo sys.server_role_members.

Um servidor é o nível mais alto da hierarquia de permissões. As permissões mais específicas e limitadas que podem ser concedidas em um servidor são listadas na tabela a seguir.

Permissões de servidor

Implícito na permissão de servidor

ADMINISTER BULK OPERATIONS

CONTROL SERVER

ALTER ANY AVAILABILITY GROUP

Aplica-se a: SQL Server (do SQL Server 2012 à versão atual).

CONTROL SERVER

ALTER ANY CONNECTION

CONTROL SERVER

ALTER ANY CREDENTIAL

CONTROL SERVER

ALTER ANY DATABASE

CONTROL SERVER

ALTER ANY ENDPOINT

CONTROL SERVER

ALTER ANY EVENT NOTIFICATION

CONTROL SERVER

ALTER ANY EVENT SESSION

CONTROL SERVER

ALTER ANY LINKED SERVER

CONTROL SERVER

ALTER ANY LOGIN

CONTROL SERVER

ALTER ANY SERVER AUDIT

CONTROL SERVER

ALTER ANY SERVER ROLE

Aplica-se a: SQL Server (do SQL Server 2012 à versão atual).

CONTROL SERVER

ALTER RESOURCES

CONTROL SERVER

ALTER SERVER STATE

CONTROL SERVER

ALTER SETTINGS

CONTROL SERVER

ALTER TRACE

CONTROL SERVER

AUTHENTICATE SERVER

CONTROL SERVER

CONNECT ANY DATABASE

Aplica-se a: SQL Server (do SQL Server 2014 à versão atual).

CONTROL SERVER

CONNECT SQL

CONTROL SERVER

CONTROL SERVER

CONTROL SERVER

CREATE ANY DATABASE

ALTER ANY DATABASE

CREATE AVAILABILITY GROUP

Aplica-se a: SQL Server (do SQL Server 2012 à versão atual).

ALTER ANY AVAILABILITY GROUP

CREATE DDL EVENT NOTIFICATION

ALTER ANY EVENT NOTIFICATION

CREATE ENDPOINT

ALTER ANY ENDPOINT

CREATE SERVER ROLE

Aplica-se a: SQL Server (do SQL Server 2012 à versão atual).

ALTER ANY SERVER ROLE

CREATE TRACE EVENT NOTIFICATION

ALTER ANY EVENT NOTIFICATION

EXTERNAL ACCESS ASSEMBLY

CONTROL SERVER

IMPERSONATE ANY LOGIN

Aplica-se a: SQL Server (do SQL Server 2014 à versão atual).

CONTROL SERVER

SELECT ALL USER SECURABLES

Aplica-se a: SQL Server (do SQL Server 2014 à versão atual).

CONTROL SERVER

SHUTDOWN

CONTROL SERVER

UNSAFE ASSEMBLY

CONTROL SERVER

VIEW ANY DATABASE

VIEW ANY DEFINITION

VIEW ANY DEFINITION

CONTROL SERVER

VIEW SERVER STATE

ALTER SERVER STATE

Comentários

As três permissões de servidor a seguir foram adicionadas ao SQL Server 2014.

  • Permissão CONNECT ANY DATABASE
    Conceda CONNECT ANY DATABASE a um logon que deve se conectar a todos os bancos de dados existentes no momento e a quaisquer novos bancos de dados que possam ser criados no futuro. Não concede nenhuma permissão em qualquer banco de dados além da conexão. Combine com SELECT ALL USER SECURABLES ou VIEW SERVER STATE para permitir que um processo de auditoria exiba todos os dados ou todos os estados do banco de dados na instância do SQL Server.

  • Permissão IMPERSONATE ANY LOGIN
    Quando concedida, permite que um processo de camada intermediária represente a conta de clientes que se conecta a ela, uma vez que ela se conecta aos bancos de dados. Quando negada, um logon com altos privilégios pode ser impedido de representar outros logons. Por exemplo, um logon com a permissão CONTROL SERVER pode ser impedido de representar outros logons.

  • Permissão SELECT ALL USER SECURABLES
    Quando concedida, um logon, como um auditor, pode exibir dados em todos os bancos de dados aos quais o usuário pode se conectar. Quando negada, impede o acesso a objetos, a menos que eles estejam no esquema sys.

Permissões

O concessor (ou o principal especificado com a opção AS) deve ter a permissão em si com GRANT OPTION ou uma permissão superior que implique na concessão da permissão. Membros da função de servidor fixa sysadmin podem conceder qualquer permissão.

Exemplos

A.Concedendo uma permissão a um logon

O exemplo a seguir concede a permissão CONTROL SERVER o logon no SQL Server de TerryEminhizer.

USE master;
GRANT CONTROL SERVER TO TerryEminhizer;
GO

B.Concedendo uma permissão que possui a permissão GRANT

O exemplo a seguir concede ALTER ANY EVENT NOTIFICATION ao logon no SQL Server de JanethEsteves com o direito para conceder essa permissão a outro logon.

USE master;
GRANT ALTER ANY EVENT NOTIFICATION TO JanethEsteves WITH GRANT OPTION;
GO

C.Concedendo uma permissão a uma função de servidor

O exemplo seguinte cria duas funções de servidor nomeadas ITDevAdmin and ITDevelopers. Concede a permissão ALTER ANY DATABASE à função de servidor definida pelo usuário ITDevAdmin inclusive a opção WITH GRANT de forma que a função de servidor ITDevAdmin pode reatribuir a permissão ALTER ANY DATABASE. O exemplo concede a permissão ITDevelopers para usar a permissão ALTER ANY DATABASE da função de servidor ITDevAdmin.

USE master;
CREATE SERVER ROLE ITDevAdmin ;
CREATE SERVER ROLE ITDevelopers ;
GRANT ALTER ANY DATABASE TO ITDevAdmin WITH GRANT OPTION ;
GRANT ALTER ANY DATABASE TO ITDevelopers AS ITDevAdmin ;
GO

Consulte também

Referência

GRANT (Transact-SQL)

DENY (Transact-SQL)

Permissões de servidor DENY (Transact-SQL)

Permissões de servidor REVOKE (Transact-SQL)

sys.fn_builtin_permissions (Transact-SQL)

sys.fn_my_permissions (Transact-SQL)

HAS_PERMS_BY_NAME (Transact-SQL)

Conceitos

Hierarquia de permissões (Mecanismo de Banco de Dados)

Entidades (Mecanismo de Banco de Dados)

Permissões (Mecanismo de Banco de Dados)