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.
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.