Permissões de servidor GRANT (Transact-SQL)
Concede permissões em um servidor.
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 |
Sugerido pela permissão de servidor |
---|---|
ADMINISTER BULK OPERATIONS |
CONTROL SERVER |
ALTER ANY AVAILABILITY GROUP |
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 |
CONTROL SERVER |
ALTER RESOURCES |
CONTROL SERVER |
ALTER SERVER STATE |
CONTROL SERVER |
ALTER SETTINGS |
CONTROL SERVER |
ALTER TRACE |
CONTROL SERVER |
AUTHENTICATE SERVER |
CONTROL SERVER |
CONNECT SQL |
CONTROL SERVER |
CONTROL SERVER |
CONTROL SERVER |
CREATE ANY DATABASE |
ALTER ANY DATABASE |
CREATE AVAILABILITY GROUP |
ALTER ANY AVAILABILITY GROUP |
CREATE DDL EVENT NOTIFICATION |
ALTER ANY EVENT NOTIFICATION |
CREATE ENDPOINT |
ALTER ANY ENDPOINT |
CREATE SERVER ROLE |
ALTER ANY SERVER ROLE |
CREATE TRACE EVENT NOTIFICATION |
ALTER ANY EVENT NOTIFICATION |
EXTERNAL ACCESS ASSEMBLY |
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 |
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
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)