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 SQL Server em Linux. Para obter mais informações sobre SQL Server em permissões de Windows, consulte Configurações e permissões de serviço Windows.
Principais internos do Windows
Embora o SQL Server no Linux seja executado na conta do sistema operacional mssql, as entidades de segurança do Windows listadas a seguir estão presentes na camada do SQL Server para garantir 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 | SID (identificador de serviço) reservado para a conta Windows SYSTEM. Foi criado ainda para que scripts multiplataforma que o aguardam tenham êxito. |
NT AUTHORITY\NETWORK SERVICE |
Nenhum (somente compatibilidade) | Historicamente, a conta de inicialização padrão para vários serviços SQL Server em Windows. Apresentado apenas para compatibilidade com versões anteriores. Não usado pelo próprio SQL Server em Linux Mecanismo de Banco de Dados. |
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 banco de dados do sistema, consulte Configurar SQL Server em Linux com a ferramenta mssql-conf.
Diretórios típicos de 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 de SQL Server mínimas para cada agente
| Agente | Executa como (Linux) | Conecta-se a | Funções/direitos de banco de dados necessários |
|---|---|---|---|
| Agente de Snapshot |
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 |
Publisher e 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 (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 para o compartilhamento de instantâneos aplicam-se ao servidor do Assinante. |
| Agente de Mesclagem | mssql |
Publisher, Distribuidor, Assinante | db_owner na distribuição. Membro PAL. Leia a pasta de snapshots. 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 a Publisher com db_owner no banco de dados de publicação. |
Práticas recomendadas
O mssql usuário e grupo usado pelo SQL Server é uma conta sem possibilidade de logon por padrão e deve ser mantidos dessa forma. Para fins de segurança, use autenticação do Windows para SQL Server em Linux sempre que possível. Para obter mais informações sobre como configurar a autenticação do Windows para o SQL Server no Linux, consulte Tutorial: use 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.