Compartilhar via


SQL Server no Linux – Guia de segurança e permissões

Este artigo descreve as contas de serviço necessárias e as permissões do sistema de arquivos para o SQL Server no Linux. Para obter mais informações sobre o SQL Server em permissões do Windows, consulte Configurar contas de serviço e permissões do Windows.

Principais internas do Windows

Embora o SQL Server no Linux seja executado na conta do mssql sistema operacional, os princípios do Windows a seguir existem na camada do SQL Server para compatibilidade. Não remova ou rejeite a menos que você entenda completamente os riscos.

Entidade de segurança Função padrão do SQL Server Detalhes
BUILTIN\Administrators sysadmin Mapeia para os administradores no nível principal do host. Determinados objetos do sistema são executados no contexto dessa conta.
NT AUTHORITY\SYSTEM público Identificador de Serviço (SID) reservado para a conta do Windows SYSTEM. Foi criado ainda para que scripts multiplataforma que o aguardam tenham êxito.
NT AUTHORITY\NETWORK SERVICE sysadmin (sem função fixa) Historicamente, a conta de inicialização padrão para vários serviços do SQL Server no Windows. Apresentado apenas para compatibilidade com versões anteriores. Não usado pelo SQL Server no próprio Mecanismo de Banco de Dados do Linux.

Propriedade de arquivo e diretório

Todos os arquivos na pasta /var/opt/mssql devem ser de propriedade do usuário mssql e do grupo mssql (mssql:mssql), com acesso de leitura e gravação para ambos. Caso você altere a umask padrão (0022) ou utilize pontos de montagem alternativos, será necessário aplicar novamente essas permissões manualmente.

As permissões padrão para a pasta são as mssql seguintes:

drwxr-xr-x  3 root  root  4096 May 14 17:17 ./
drwxr-xr-x 13 root  root  4096 Jan  7  2025 ../
drwxrwx---  7 mssql mssql 4096 May 14 17:17 mssql/

As permissões padrão para o conteúdo da pasta são as mssql seguintes:

drwxrwx--- 7 mssql mssql 4096 May 14 17:17 ./
drwxr-xr-x 3 root  root  4096 May 14 17:17 ../
drwxr-xr-x 5 mssql mssql 4096 May 14 17:17 .system/
drwxr-xr-x 2 mssql mssql 4096 May 14 17:17 data/
drwxr-xr-x 3 mssql mssql 4096 Sep 16 22:57 log/
-rw-r--r-- 1 root  root    85 May 14 17:17 mssql.conf
drwxrwxr-x 2 mssql mssql 4096 May 14 17:17 secrets/
drwxr-xr-x 2 mssql mssql 4096 May 14 17:17 security/

Para obter mais informações sobre como alterar o local de dados do usuário, o local do arquivo de log ou os locais de log e do banco de dados do sistema, consulte Configurar o SQL Server no Linux com a ferramenta mssql-conf.

Diretórios típicos do SQL Server

Propósito Caminho padrão Detalhes
Bancos de dados do sistema e do usuário /var/opt/mssql/data Inclui master, modele tempdbquaisquer novos bancos de dados, a menos que mssql-conf os redirecione. Para obter mais informações, consulte Alterar o local padrão para bancos de dados do sistema.
Registros de transações (separados, se aplicável) /var/opt/mssql/data, ou o caminho definido via mssql-conf set filelocation.defaultlogdir. Mantenha a mesma propriedade se você mover os logs de transações. Para obter mais informações, consulte Alterar os dados padrão ou o local do diretório de log.
Backups /var/opt/mssql/data Crie e defina com chown antes do primeiro backup ou ao mapear um volume ou diretório. Para obter mais informações, consulte Alterar o local do diretório de backup padrão.
Logs de erros e logs de Evento Estendido (XE) /var/opt/mssql/log Também hospeda a sessão padrão de monitoramento do sistema XE. Para obter mais informações, consulte Alterar o local do diretório do arquivo de log de erros padrão.
Despejos de memória /var/opt/mssql/log Usado para despejos de memória e despejos de núcleo DBCC CHECK*. Para obter mais informações, consulte Alterar o local do diretório de despejo padrão.
Segredos de segurança /var/opt/mssql/secrets Armazena certificados TLS, chaves mestras de coluna e outros.

Funções mínimas do SQL Server para cada agente

Agente Executa como (Linux) Conecta-se a Funções/direitos de banco de dados necessários
Agente de Captura de Instantâneo mssql (por meio do trabalho do SQL Agent) Distributor db_owner no banco de dados de distribuição; permissão de leitura/gravação na pasta de snapshot
Agente Leitor de Logs mssql Publicador & Distribuidor db_owner no banco de dados e na distribuição da publicação. Talvez seja necessário sysadmin ao usar a inicialização do backup
Agente de Distribuição (modo push) mssql Distribuidor para Assinante db_owner na distribuição; db_owner no banco de dados de assinatura. Leia a pasta de snapshots. Membro PAL.
Agente de Distribuição (pull) mssql (no Assinante) Assinante do Distribuidor
Distribuidor para Assinante
O mesmo que o Agente de Distribuição (push), mas as permissões de compartilhamento de instantâneo se aplicam ao host do Assinante
Agente de Mesclagem mssql Publicador, Distribuidor, Assinante db_owner na distribuição. Membro PAL. Ler pasta de instantâneo. Leitura/gravação em bancos de dados de publicação e subscrição.
Agente de leitor de fila mssql Distributor db_owner na distribuição. Conecta-se ao Publisher com db_owner no banco de dados de publicação.

Práticas recomendadas

O mssql usuário e o grupo usados pelo SQL Server são uma conta que não exige login por padrão e devem permanecer assim. Para fins de segurança, use a autenticação do Windows para SQL Server no Linux sempre que possível. Para obter mais informações sobre como configurar a autenticação do Windows para SQL Server no Linux, consulte Tutorial: Usar adutil para configurar a autenticação do Active Directory com o SQL Server no Linux.

Restrinja ainda mais as permissões de arquivo (usando o comando chmod 700) sempre que o diretório não precisar de acesso ao grupo.

Ao associar diretórios de host ou compartilhamentos NFS em contêineres ou máquinas virtuais, crie-os primeiro, depois mapeie a UID 10001 (padrão para mssql).

Evite conceder sysadmin aos logons do aplicativo. Em vez disso, use funções granulares e EXECUTE AS wrappers. Desabilite ou renomeie a sa conta depois que você tiver outra conta sysadmin criada. Para obter mais informações, consulte Desabilitar a conta SA como uma prática recomendada.