Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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 mais informações sobre SQL Server nas permissões de Windows, consulte Configurar contas e permissões de serviço Windows.
Princípios incorporados do Windows
Embora SQL Server em Linux corra sob a conta do sistema operativo mssql, existem os seguintes princípios Windows na camada SQL Server para compatibilidade. Não os remova ou negue, a menos que compreenda completamente os riscos.
| Diretor | Função padrão do SQL Server | Detalhes |
|---|---|---|
BUILTIN\Administrators |
administrador de sistemas | Mapeia para os administradores ao nível raiz do hospedeiro. Determinados objetos do sistema são executados no contexto dessa conta. |
NT AUTHORITY\SYSTEM |
public | Identificador de segurança (SID) reservado para a conta do WindowsSYSTEM. Ainda assim, foi criado para que scripts multiplataforma que esperam isso tenham sucesso. |
NT AUTHORITY\NETWORK SERVICE |
Nenhum (apenas compatibilidade) | Historicamente, é a conta de arranque padrão de vários serviços do SQL Server no Windows. Presente apenas para compatibilidade com versões anteriores. Não é usado pelo próprio SQL Server em Linux Database Engine. |
Propriedade de arquivos e diretórios
O mssql utilizador e o mssql grupo (mssql:mssql) devem ser proprietários de todos os ficheiros na pasta /var/opt/mssql, com permissões de leitura e escrita para ambos. Se alterar o umask padrão (0022) ou utilizar pontos de montagem alternativos, deve reaplicar estas 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-rw---- 1 mssql mssql 28 Sep 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 mais informações sobre como alterar a localização dos dados do utilizador, a localização dos ficheiros de registo ou a base de dados e registos do sistema, consulte Configure SQL Server em Linux com a ferramenta mssql-conf.
Diretórios típicos do SQL Server
| Purpose | Caminho padrão | Detalhes |
|---|---|---|
| Bases de dados de sistemas e utilizadores | /var/opt/mssql/data |
Inclui master, model, tempdb, e quaisquer novas bases de dados, a menos que mssql-conf as redirecione. Para obter mais informações, consulte Alterar o local padrão dos bancos de dados do sistema. |
| Logs de transações (se separados) |
/var/opt/mssql/data, ou o caminho definido via mssql-conf set filelocation.defaultlogdir. |
Mantenha a mesma propriedade se 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. |
| Registos de erros e registos de eventos ampliados (XE) | /var/opt/mssql/log |
Também aloja a sessão padrão de saúde 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 |
Armazena despejos e DBCC CHECK* despejos de núcleo. 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 itens como certificados TLS e chaves mestras de coluna. |
Funções mínimas do SQL Server para cada agente
| Agente | Funciona como (Linux) | Conecta-se a | Funções/direitos de banco de dados necessários |
|---|---|---|---|
| Agente de Snapshot |
mssql (através de tarefa do SQL Server Agent) |
Distributor | db_owner na base de dados de distribuição; leitura/gravação na pasta de instantâneo |
| Agente Leitor de Logs | mssql |
Editora & Distribuidor | db_owner na base de dados de publicação e na base de dados de distribuição. Pode precisar de sysadmin quando utilizar inicializar a partir de uma cópia de segurança |
| Agente de Distribuição (push) | mssql |
Distribuidor para Assinante | db_owner na distribuição; db_owner no banco de dados de assinaturas. Leia a pasta de capturas. Membro do PAL. |
| Agente de Distribuição (pull) |
mssql (em Assinante) |
Assinante do Distribuidor Distribuidor para Assinante |
O mesmo que o Distribution Agent (push), mas as permissões de partilha de instantâneos aplicam-se no servidor do subscritor |
| Agente de fusão | mssql |
Publisher, Distribuidor, Assinante | db_owner na distribuição. Membro do PAL. Leia a pasta de capturas. Operações de leitura/escrita em bases de dados dedicadas à publicação e subscrição. |
| Agente leitor de filas | mssql |
Distributor | db_owner na distribuição. Conecta-se ao Publisher com db_owner na base de dados de publicação. |
Melhores práticas
O mssql utilizador e o grupo que o SQL Server utiliza são uma conta que não permite iniciar sessão, por defeito. Mantém assim por razões de segurança. Utilize a autenticação do Windows para o SQL Server no Linux sempre que possível. Para mais informações sobre como configurar a autenticação do Windows para o SQL Server no Linux, consulte Tutorial: Use o 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 partilhas NFS a contentores ou máquinas virtuais, crie-as primeiro e depois mapeie UID 10001 (padrão para mssql).
Evite conceder sysadmin para logins de aplicativos. Em vez disso, use funções granulares e envoltórios EXECUTE AS. Desative ou mude o nome da conta sa depois de criar outra conta sysadmin. Para obter mais informações, consulte Desabilitar a conta SA como prática recomendada.