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