Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Instância Gerenciada de SQL do Azure
Analytics Platform System (PDW)
O 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.)
O SQL Server 2019 (15.x) e as versões anteriores forneceram nove funções de servidor fixas. A permissões que são concedidas às funções de servidor fixas (exceto public) 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.
O SQL Server 2022 (16.x) vem com 10 funções de servidor extras projetadas especificamente com o Princípio do Privilégio Mínimo em mente. Elas possuem o prefixo ##MS_ e o sufixo ## para distingui-las de outros princípios e funções de servidor personalizadas criadas pelo usuário. Essas novas funções contêm privilégios que se aplicam ao escopo do servidor, mas também podem ser herdados por bancos de dados individuais (exceto para o papel de servidor "##MS_LoginManager##").
Assim como o SQL Server local, as permissões do servidor são organizadas hierarquicamente. As permissões mantidas por essas funções de nível de servidor podem ser propagadas para permissões de banco de dados. Para que as permissões sejam efetivamente úteis no nível do banco de dados, um logon precisa ser membro da função ##MS_DatabaseConnector## no nível do servidor (começando com o SQL Server 2022 (16.x)), que concede a CONNECT permissão a todos os bancos de dados ou ter uma conta de usuário em bancos de dados individuais. Isso também se aplica ao banco de dados master.
Considere o exemplo a seguir: a função ##MS_ServerStateReader## no nível do servidor contém a permissão VIEW SERVER STATE. Um logon que é membro dessa função tem uma conta de usuário nos bancos de dados master e WideWorldImporters. Esse usuário também tem a VIEW DATABASE STATE permissão nesses dois bancos de dados por herança.
Você pode adicionar entidades de segurança no nível do servidor (logons do SQL Server, contas do Windows e grupos do Windows) em funções no nível do servidor. Cada membro de uma função de servidor fixa pode adicionar outros logons a essa mesma função. Membros de funções de servidor definidas pelo usuário não podem adicionar outros principais de servidor à função.
Funções fixas no servidor
Observação
Essas funções de nível de servidor introduzidas antes do SQL Server 2022 (16.x) e não estão disponíveis no Banco de Dados SQL do Azure ou no Azure Synapse Analytics. Há funções especiais do servidor do banco de dados SQL do Azure para gerenciamento de permissões equivalentes às funções de nível de servidor introduzidas no SQL Server 2022 (16.x). Para obter mais informações sobre o Banco de Dados SQL, confira Controlando e concedendo acesso ao banco de dados.
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. Importante: as permissões não podem ser negadas aos membros dessa função. |
| 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. O securityadmin pode também ter permissões de nível de banco de dados GRANT, DENY e REVOKE se tiver acesso ao banco de dados. Além disso, o securityadmin pode redefinir senhas para logons do SQL Server.IMPORTANTE: a capacidade de permitir acesso ao mecanismo de banco de dados e de configurar permissões de usuário permitem 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 . Se preferir, começando com o SQL Server 2022 (16.x), use a nova função de servidor fixa ##MS_LoginManager##. |
| 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. Os membros dessa função podem potencialmente elevar seus privilégios sob determinadas condições. Aplique o princípio de privilégio mínimo ao atribuir essa função e monitorar todas as atividades executadas por seus membros. A função bulkadmin ou permissões ADMINISTER BULK OPERATIONS não têm suporte para o SQL Server no Linux.Não há suporte para operações em lote ( BULK INSERT instruções) para logins com base na autenticação do Microsoft Entra, no Linux ou no Windows. Nesse cenário, somente membros da função sysadmin podem executar inserções em massa para o SQL Server. |
| 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. |
| public | Cada logon do SQL Server pertence à função de servidor public. Quando um principal de servidor não tem ou não lhe são concedidas permissões específicas em um objeto securável, o usuário herda as permissões concedidas ao público nesse objeto. Atribua somente permissões públicas em qualquer objeto quando quiser que o objeto esteja disponível para todos os usuários. Você não pode modificar a associação em público. Observação:o público é implementado de forma diferente de outras funções e as permissões podem ser concedidas, negadas ou revogadas das funções de servidor fixas públicas . |
Importante
A maioria das permissões fornecidas pelas seguintes funções de servidor não são aplicáveis ao Azure Synapse Analytics – processadmin, serveradmin, setupadmin e diskadmin.
Funções fixas no nível do servidor introduzidas no SQL Server 2022
A tabela a seguir mostra funções fixas no nível do servidor introduzidas no SQL Server 2022 (16.x) e seus recursos.
Observação
Essas permissões no nível do servidor não estão disponíveis para a Instância Gerenciada de SQL do Azure ou o Azure Synapse Analytics.
##MS_PerformanceDefinitionReader##, ##MS_ServerPerformanceStateReader##e ##MS_ServerSecurityStateReader## é introduzido no SQL Server 2022 (16.x) e não está disponível no Banco de Dados SQL do Azure.
| Função fixa de nível de servidor | Descrição |
|---|---|
##MS_DatabaseConnector## |
Os membros da função de servidor fixa ##MS_DatabaseConnector## podem se conectar a qualquer banco de dados sem exigir uma conta de usuário no banco de dados para se conectar.Para negar a permissão CONNECT a um banco de dados específico, os usuários podem criar uma conta de usuário correspondente para esse logon no banco de dados e, em seguida, DENY a permissão CONNECT para o usuário do banco de dados. Essa permissão DENY anula a permissão GRANT CONNECT proveniente dessa função. |
##MS_LoginManager## |
Os membros da ##MS_LoginManager## função de servidor fixa podem criar, excluir e modificar logons. Ao contrário da antiga função de servidor fixa securityadmin, essa função não permite que os membros tenham privilégios GRANT. Essa é uma função mais limitada que ajuda a cumprir o princípio do privilégio mínimo. |
##MS_DatabaseManager## |
Os membros da função de servidor fixa ##MS_DatabaseManager## podem criar e excluir bancos de dados. Um membro da função ##MS_DatabaseManager## que cria um banco de dados se torna o proprietário desse banco de dados, o que permite ao usuário se conectar ao banco de dados como o usuário dbo. O usuário dbo tem todas as permissões de banco de dados no banco de dados. Os membros da função ##MS_DatabaseManager## não têm necessariamente permissão para acessar bancos de dados que eles não possuem. Essa função de servidor tem os mesmos privilégios que a função dbcreator no SQL Server, mas é recomendável usar esta nova função ao invés da antiga, pois essa função também existe no Banco de Dados SQL do Azure e, portanto, ajuda a utilizar scripts idênticos em ambientes diferentes. Os membros dessa função podem potencialmente elevar seus privilégios sob determinadas condições. Aplique o princípio de privilégio mínimo ao atribuir essa função e monitorar todas as atividades executadas por seus membros. |
##MS_ServerStateManager## |
Os membros da função de servidor fixa ##MS_ServerStateManager## têm as mesmas permissões que a função ##MS_ServerStateReader##. Além disso, ela contém a ALTER SERVER STATE permissão, que permite o acesso a várias operações de gerenciamento, como: DBCC FREEPROCCACHE, , DBCC FREESYSTEMCACHE ('ALL')DBCC SQLPERF() |
##MS_ServerStateReader## |
Os membros da função de ##MS_ServerStateReader## servidor fixa podem ler todas as DMVs (exibições de gerenciamento dinâmico) e as funções cobertas por VIEW SERVER STATE, e, respectivamente, possuem permissão de VIEW DATABASE STATE em qualquer banco de dados no qual o membro dessa função tenha uma conta de usuário. |
##MS_ServerPerformanceStateReader## |
Os membros da função de ##MS_ServerPerformanceStateReader## servidor fixa podem ler todas as DMVs (exibições de gerenciamento dinâmico) e as funções cobertas por VIEW SERVER PERFORMANCE STATE, e, respectivamente, possuem permissão de VIEW DATABASE PERFORMANCE STATE em qualquer banco de dados no qual o membro dessa função tenha uma conta de usuário. Subconjunto do que a ##MS_ServerStateReader## função do servidor tem acesso a, o que ajuda a cumprir o Princípio do privilégio mínimo. |
##MS_ServerSecurityStateReader## |
Os membros da função de ##MS_ServerSecurityStateReader## servidor fixa podem ler todas as DMVs (exibições de gerenciamento dinâmico) e as funções cobertas por VIEW SERVER SECURITY STATE, e, respectivamente, possuem permissão de VIEW DATABASE SECURITY STATE em qualquer banco de dados no qual o membro dessa função tenha uma conta de usuário. Pequeno subconjunto ao qual a ##MS_ServerStateReader## função de servidor tem acesso, o que ajuda a cumprir o princípio do menor privilégio. |
##MS_DefinitionReader## |
Os membros da função de servidor fixa ##MS_DefinitionReader## podem ler todas as exibições do catálogo cobertas por VIEW ANY DEFINITION e têm, respectivamente, a permissão VIEW DEFINITION em qualquer banco de dados no qual o membro dessa função tenha uma conta de usuário. |
##MS_PerformanceDefinitionReader## |
Os membros da função de servidor fixa ##MS_PerformanceDefinitionReader## podem ler todas as exibições do catálogo cobertas por VIEW ANY PERFORMANCE DEFINITION e têm, respectivamente, a permissão VIEW PERFORMANCE DEFINITION em qualquer banco de dados no qual o membro dessa função tenha uma conta de usuário. Subconjunto do que a ##MS_DefinitionReader## função de servidor tem acesso a. |
##MS_SecurityDefinitionReader## |
Os membros da função de servidor fixa ##MS_SecurityDefinitionReader## podem ler todas as exibições do catálogo cobertas por VIEW ANY SECURITY DEFINITION e têm, respectivamente, a permissão VIEW SECURITY DEFINITION em qualquer banco de dados no qual o membro dessa função tenha uma conta de usuário. Pequeno subconjunto ao qual a ##MS_DefinitionReader## função de servidor tem acesso, o que ajuda a cumprir o princípio do menor privilégio. |
Permissões de funções de servidor fixas
Cada função de servidor fixa tem certas permissões atribuídas a ela.
Permissões de novas funções de servidor fixas no SQL Server 2022
A tabela a seguir mostra as permissões atribuídas às funções de nível de servidor. Também mostra as permissões no nível do banco de dados que são herdadas desde que o usuário possa se conectar a bancos de dados individuais.
| Função fixa de nível de servidor | Permissões no nível de servidor | Permissões no nível do banco de dados |
|---|---|---|
##MS_DatabaseConnector## |
- CONNECT ANY DATABASE |
- CONNECT |
##MS_LoginManager## |
- CREATE LOGIN- ALTER ANY LOGIN |
N/D |
##MS_DatabaseManager## |
- CREATE ANY DATABASE- ALTER ANY DATABASE |
- ALTER |
##MS_ServerStateManager## |
- ALTER SERVER STATE- VIEW SERVER STATE- VIEW SERVER PERFORMANCE STATE- VIEW SERVER SECURITY STATE |
- VIEW DATABASE STATE- VIEW DATABASE PERFORMANCE STATE- VIEW DATABASE SECURITY STATE |
##MS_ServerStateReader## |
- VIEW SERVER STATE- VIEW SERVER PERFORMANCE STATE- VIEW SERVER SECURITY STATE |
- VIEW DATABASE STATE- VIEW DATABASE PERFORMANCE STATE- VIEW DATABASE SECURITY STATE |
##MS_ServerPerformanceStateReader## |
- VIEW SERVER PERFORMANCE STATE |
- VIEW DATABASE PERFORMANCE STATE |
##MS_ServerSecurityStateReader## |
- VIEW SERVER SECURITY STATE |
- VIEW DATABASE SECURITY STATE |
##MS_DefinitionReader## |
- VIEW ANY DATABASE- VIEW ANY DEFINITION- VIEW ANY PERFORMANCE DEFINITION- VIEW ANY SECURITY DEFINITION |
- VIEW DEFINITION- VIEW PERFORMANCE DEFINITION- VIEW SECURITY DEFINITION |
##MS_PerformanceDefinitionReader## |
- VIEW ANY PERFORMANCE DEFINITION |
- VIEW PERFORMANCE DEFINITION |
##MS_SecurityDefinitionReader## |
- VIEW ANY SECURITY DEFINITION |
- VIEW SECURITY DEFINITION |
Permissões de funções de servidor para SQL Server 2019 e versões anteriores
O gráfico a seguir mostra as permissões atribuídas às funções de servidor herdadas (SQL Server 2019 (15.x) e versões anteriores).
A CONTROL SERVER permissão é semelhante, mas não idêntica ao cargo de servidor fixo sysadmin. Os principais com a CONTROL SERVER permissão podem ter permissões específicas negadas. Do ponto de vista de segurança, considere os principais com CONTROL SERVER como idênticos aos membros sysadmin, devido a várias maneiras possíveis de elevar as permissões de CONTROL SERVER para privilégios completos de sysadmin. Vários DBCC comandos e muitos procedimentos do sistema exigem associação à função de servidor fixa sysadmin .
Permissões no 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.
Trabalhar 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.
| Funcionalidade | Tipo | Descrição |
|---|---|---|
| sp_helpsrvrole | Metadados | Retorna uma lista de roles no nível do servidor. |
| sp_helpsrvrolemember | Metadados | Retorna informações sobre os membros de uma função de nível de servidor. |
| sp_srvrolepermission | Metadados | Exibe as permissões de uma função de nível de servidor. |
| IS_SRVROLEMEMBER | Metadados | Indica se um login do SQL Server é membro da função de nível de servidor especificada. |
| sys.server_role_members | Metadados | Retorna uma linha para cada membro de cada função de nível de servidor. |
| CRIAR FUNÇÃO DE SERVIDOR | Comando | Cria uma função de servidor definida pelo usuário. |
| ALTERAR FUNÇÃO DE SERVIDOR | 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 | Comando | Remove uma função de servidor definida pelo usuário. |
| sp_addsrvrolemember | Comando | Adiciona um logon como membro de uma função de nível de servidor. Descontinuado. Use ALTER SERVER ROLE em vez disso. |
| sp_dropsrvrolemember | 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. |
Funções específicas do SQL Server habilitadas pelo Azure Arc
Quando você instala Azure Extension para SQL Server no modo sem privilégios mínimos, a instalação:
- Cria uma função no nível do servidor:
SQLArcExtensionServerRole - Cria uma função no nível do banco de dados:
SQLArcExtensionUserRole - Adiciona a conta
NT AUTHORITY\SYSTEMa cada função - Mapas
NT AUTHORITY\SYSTEMno nível do banco de dados para cada banco de dados - Concede permissões mínimas para os recursos habilitados
Como alternativa, você pode configurar SQL Server habilitado por Azure Arc para execução no modo de privilégio mínimo. Para obter mais informações, consulte Operar SQL Server habilitado por Azure Arc com privilégios mínimos.
Além disso, Azure Extensão para SQL Server revoga permissões para essas funções quando elas não são mais necessárias para recursos específicos.
Observação
As ações descritas anteriormente exigem que o Implantador se conecte a SQL Server como NT AUTHORITY\SYSTEM. Se o logon NT AUTHORITY\SYSTEM for removido, desabilitado ou tiver sua CONNECT SQL permissão negada, o Distribuidor não poderá executar nenhuma dessas ações, e a Extensão Azure para SQL Server falhará ao provisionar. Consulte os pré-requisitos para ver as etapas para verificar e restaurar esse logon.
SqlServerExtensionPermissionProvider é uma tarefa do Windows. Ele executa Deployer.exe para conceder ou revogar privilégios em SQL Server quando detecta:
- Uma nova instância do SQL Server foi instalada no host
- Uma instância de SQL Server é desinstalada do host
- Um recurso de nível de instância está habilitado ou desabilitado ou as configurações são atualizadas
- O serviço de extensão é reiniciado
- As permissões JIT (Just-In-Time) estão habilitadas ou desabilitadas
Observação
Antes do lançamento de julho de 2024, SqlServerExtensionPermissionProvider era uma tarefa agendada que era executada a cada hora.
Para obter detalhes, examine Configurar contas de serviço do Windows e permissões para Azure Extension for SQL Server.
Se você desinstalar Azure Extension para SQL Server, as funções no nível do servidor e do banco de dados serão removidas.
Para obter permissões, revise Permissões.
Conteúdo relacionado
- Funções de nível de banco de dados
- Visões do Catálogo de Segurança (Transact-SQL)
- Funções de segurança (Transact-SQL)
- Protegendo o SQL Server
- Permissões do Principal 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
- Funções do servidor do Banco de Dados SQL do Azure para gerenciamento de permissões