Funções de nível de servidor

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. (Asfunçõ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 não podem ser alteradas. A partir do SQL Server 2012, você pode criar funções de servidor definidas pelo usuário e adicionar permissões de 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.

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 CONCEDER, NEGAR e REVOGAR permissões de nível de servidor. Também podem executar as 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 .

** Nota de segurança ** A capacidade de conceder acesso ao Mecanismo de Banco de Dados e configurar permissões de usuário permite que o administrador de segurança atribua a maioria das permissões de servidor. A securityadmin função deve ser tratada como equivalente à sysadmin função.
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, descartar e restaurar qualquer banco de dados.
públicos Cada logon do SQL Server pertence à função de servidor público. 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 modo diferente de outras funções. No entanto, as permissões podem ser concedidas, negadas ou revogadas e negadas por meio de public.

Permissões de funções de servidor fixas

Cada função de servidor fixa tem certas permissões atribuídas a ela. Para um gráfico das permissões atribuídas às funções de servidor, consulte Funções fixas de servidor e de banco de dados do Mecanismo de Banco de Dados.

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 associação na sysadmin função de servidor fixa.) 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 de 171 procedimentos armazenados do sistema que exigem sysadmin associação, consulte a seguinte postagem no blog de Andreas Wolter CONTROL SERVER vs. sysadmin/sa: permissões, procedimentos do sistema, DBCC, criação automática de esquema e escalonamento de privilégios – advertências.

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 permissões, consulte 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.
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.
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.
IS_SRVROLEMEMBER (Transact-SQL) Função Determina associação de função de servidor.

Consulte Também

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