Funções de nível de servidor

Aplica-se a: simSQL Server (todas as versões compatíveis) SimInstância Gerenciada do Azure SQL simParallel Data Warehouse

SQL Server fornece funções do nível de servidor para ajudar a gerenciar as permissões em um servidor. Estas funções são entidades de segurança que agrupam outras entidades de segurança. Essas funções abrangem todo o servidor em seus escopos de permissões. (As funções são como grupos no sistema operacional Windows.)

As funções de servidor fixas são fornecidas para conveniência e compatibilidade com versões anteriores. Atribua mais permissões específicas sempre que possível.

SQL Server fornece nove funções de servidor fixas. A permissões que são concedidas às funções de servidor fixas (exceto público) não podem ser alteradas. A partir do SQL Server 2012 (11.x), você pode criar funções de servidor definidas pelo usuário e adicionar permissões do nível de servidor às funções de servidor definidas pelo usuário.

Você pode adicionar entidades de segurança no nível do servidor (logons doSQL Server , contas do Windows e grupos do Windows) em funções de nível de servidor. Cada membro de uma função de servidor fixa pode adicionar outros logons a essa mesma função. Os membros de funções de servidor definidas pelo usuário não podem acrescentar outras entidades de segurança de servidor à função.

Observação

Permissões no nível do servidor não estão disponíveis no Banco de Dados SQL ou no Azure Synapse Analytics. Para obter mais informações sobre o Banco de Dados SQL, consulte Controlando e concedendo acesso ao banco de dados.

Funções fixas de nível de servidor

A tabela a seguir mostra as funções fixas de nível de servidor e seus recursos.

Função fixa de nível de servidor Descrição
sysadmin Os membros da função de servidor fixa sysadmin podem executar qualquer atividade no servidor.
serveradmin Os membros da função de servidor fixa serveradmin podem alterar as opções de configuração de todo o servidor e fechar o servidor.
securityadmin Os membros da função de servidor fixa securityadmin gerenciam logons e suas propriedades. Eles podem ter as permissões de nível de servidor GRANT, DENY e REVOKE. Eles também podem ter permissões de nível de banco de dados GRANT, DENY e REVOKE se tiverem acesso ao banco de dados. Além disso, eles podem redefinir senhas para logons do SQL Server .

IMPORTANTE: A capacidade de conceder acesso ao Mecanismo de Banco de Dados e de configurar permissões de usuário permite que o administrador de segurança atribua a maioria das permissões de servidor. A função securityadmin deve ser tratada como equivalente à função sysadmin .
processadmin Os membros da função de servidor fixa processadmin podem encerrar os processos em execução em uma instância do SQL Server.
setupadmin Os membros da função de servidor fixa setupadmin podem adicionar e remover servidores vinculados usando instruções Transact-SQL. (A associação sysadmin é necessária ao usar o Management Studio.)
bulkadmin Os membros da função de servidor fixa bulkadmin podem executar a instrução BULK INSERT.
diskadmin A função de servidor fixa diskadmin é usada para gerenciar arquivos em disco.
dbcreator Os membros da função de servidor fixa dbcreator podem criar, alterar, remover e restaurar qualquer banco de dados.
público Todo logon do SQL Server pertence à função de servidor pública. Quando permissões específicas não são concedidas ou são negadas a uma entidade de servidor em um objeto seguro, o usuário herda as permissões concedidas como públicas naquele objeto. Somente atribua permissões públicas em qualquer objeto quando você quiser que ele esteja disponível para todos os usuários. Não é possível alterar associação em public.

Observação: public é implementado de maneira diferente de outras funções. Além disso, é possível conceder, negar ou revogar permissões das funções de servidor fixas públicas.

Importante

A maioria das permissões fornecidas pelas seguintes funções de servidor não se aplica ao SQL do Synapse: processadmin, serveradmin, setupadmin e diskadmin.

Permissões de funções de servidor fixas

Cada função de servidor fixa tem certas permissões atribuídas a ela. A imagem a seguir mostra as permissões atribuídas às funções de servidor.
fixed_server_role_permissions

Importante

A permissão CONTROL SERVER é semelhante, mas não idêntica à função de servidor fixa do sysadmin . As permissões não implicam associações de função e as associações de função não concedem permissões. Por exemplo, CONTROL SERVER não implica a associação à função de servidor fixa sysadmin.) No entanto, às vezes é possível representar entre funções e permissões equivalentes. A maioria dos comandos DBCC e muitos procedimentos do sistema requerem associação na função de servidor fixa sysadmin . Para obter uma lista dos 171 procedimentos armazenados do sistema que exigem associação ao sysadmin , veja a seguinte postagem de blog de Andreas Wolter CONTROL SERVER vs. sysadmin/sa: permissions, system procedures, DBCC, automatic schema creation and privilege escalation – caveats.

Permissão em nível de servidor

Somente podem ser acrescentadas permissões do nível de servidor a funções de servidor definidas pelo usuário. Para listar as permissões em nível de servidor, execute a instrução a seguir. As permissões em nível de servidor são:

SELECT * FROM sys.fn_builtin_permissions('SERVER') ORDER BY permission_name;  

Para obter mais informações sobre as permissões, veja Permissões (Mecanismo de Banco de Dados) e sys.fn_builtin_permissions (Transact-SQL).

Trabalhando com funções de nível de servidor

A tabela a seguir explica os comandos, exibições e funções que você pode usar para trabalhar com funções de nível de servidor.

Recurso Type Descrição
sp_helpsrvrole (Transact-SQL) Metadados Retorna uma lista de funções de nível de servidor.
sp_helpsrvrolemember (Transact-SQL) Metadados Retorna informações sobre os membros de uma função de nível de servidor.
sp_srvrolepermission (Transact-SQL) Metadados Exibe as permissões de uma função de nível de servidor.
IS_SRVROLEMEMBER (Transact-SQL) Metadados Indica se um logon do SQL Server é membro da função de nível de servidor especificada.
sys.server_role_members (Transact-SQL) Metadados Retorna uma linha para cada membro de cada função de nível de servidor.
CREATE SERVER ROLE (Transact-SQL) Comando Cria uma função de servidor definida pelo usuário.
ALTER SERVER ROLE (Transact-SQL) Comando Altera a associação de uma função de servidor ou altera nome de uma função de servidor definida pelo usuário.
DROP SERVER ROLE (Transact-SQL) Comando Remove uma função de servidor definida pelo usuário.
sp_addsrvrolemember (Transact-SQL) Comando Adiciona um logon como um membro de uma função de nível de servidor. Preterido. Use ALTER SERVER ROLE em vez disso.
sp_dropsrvrolemember (Transact-SQL) Comando Remove um logon do SQL Server ou um usuário ou grupo do Windows de uma função de nível de servidor. Preterido. Use ALTER SERVER ROLE em vez disso.

Consulte Também

Funções de nível de banco de dados
Exibições de catálogo de segurança (Transact-SQL)
Funções de segurança (Transact-SQL)
Protegendo o SQL Server
Permissões GRANT de entidade do servidor (Transact-SQL)
Permissões REVOKE de entidade do servidor (Transact-SQL)
Permissões DENY de entidade do servidor (Transact-SQL)
Criar uma função de servidor