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 on 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 on Linux Database Engine. |
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 on 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 Distribution Agent (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 Windows authentication para SQL Server on 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.