Configurar o SQL Server em Linux com a ferramenta mssql-conf

Aplica se a:yesSQL Server (todas as versões com suporte) – Linux

mssql-conf é um script de configuração que é instalado com o SQL Server 2017 para Red Hat Enterprise Linux, SUSE Linux Enterprise Server e Ubuntu. Ele modifica o mssql.conf file no qual os valores de configuração estão armazenados. Você pode usar o utilitário mssql-conf para definir os seguintes parâmetros:

Parâmetro Descrição
Autenticação do Active Directory Configurações para a autenticação do Azure Active Directory.
Agente Habilite o SQL Server Agent.
Ordenação Definir uma nova ordenação para o SQL Server em Linux.
Comentários do cliente Escolher se o SQL Server envia ou não comentários à Microsoft.
Perfil do Database Mail Definir o perfil padrão do Database Mail para o SQL Server em Linux.
Diretório de dados padrão Alterar o diretório padrão para novos arquivos de dados de banco de dados do SQL Server (.mdf).
Diretório de log padrão Alterar o diretório padrão para novos arquivos de log de banco de dados do SQL Server (.ldf).
Diretório padrão do banco de dados mestre Alterar o diretório padrão para o banco de dados mestre e os arquivos de log.
Nome padrão do arquivo de banco de dados mestre Alterar o nome de arquivos de banco de dados mestre.
Diretório de despejo padrão Alterar o diretório padrão para novos despejos de memória e outros arquivos de solução de problemas.
Diretório de log de erros padrão Alterar o diretório padrão para novos arquivos de logs de erros do SQL Server, rastreamento do Profiler padrão, XE da sessão de integridade do sistema e XE da sessão do Hekaton.
Diretório de backup padrão Alterar o diretório padrão para novos arquivos de backup.
Tipo de despejo Escolher o tipo de arquivo de despejo de memória de despejo a ser coletado.
Edição Definir a edição do SQL Server.
Alta disponibilidade Habilitar grupos de disponibilidade.
Diretório de auditoria local Definir um diretório para adicionar arquivos de auditoria local.
Localidade Definir a localidade a ser usada pelo SQL Server.
Limite de memória Definir o limite de memória para o SQL Server.
Configurações de rede Configurações de rede adicionais para SQL Server.
Coordenador de Transações Distribuídas da Microsoft Configurar e solucionar problemas do MSDTC no Linux.
Porta TCP Alterar a porta em que o SQL Server escuta conexões.
TLS Configurar o protocolo TLS.
Sinalizadores de rastreamento Definir os sinalizadores de rastreamento que o serviço vai usar.

mssql-conf é um script de configuração que é instalado com o SQL Server 2019 (15.x) para Red Hat Enterprise Linux, SUSE Linux Enterprise Server e Ubuntu. Você pode usar esse utilitário para definir os seguintes parâmetros:

Parâmetro Descrição
Autenticação do Active Directory Configurações para a autenticação do Azure Active Directory.
Agente Habilitar o SQL Server Agent
Ordenação Definir uma nova ordenação para o SQL Server em Linux.
Comentários do cliente Escolher se o SQL Server envia ou não comentários à Microsoft.
Perfil do Database Mail Definir o perfil padrão do Database Mail para o SQL Server em Linux.
Diretório de dados padrão Alterar o diretório padrão para novos arquivos de dados de banco de dados do SQL Server (.mdf).
Diretório de log padrão Alterar o diretório padrão para novos arquivos de log de banco de dados do SQL Server (.ldf).
Diretório padrão de arquivos de banco de dados mestre Alterar o diretório padrão para os arquivos do banco de dados mestre na instalação existente do SQL.
Nome padrão do arquivo de banco de dados mestre Alterar o nome de arquivos de banco de dados mestre.
Diretório de despejo padrão Alterar o diretório padrão para novos despejos de memória e outros arquivos de solução de problemas.
Diretório de log de erros padrão Alterar o diretório padrão para novos arquivos de logs de erros do SQL Server, rastreamento do Profiler padrão, XE da sessão de integridade do sistema e XE da sessão do Hekaton.
Diretório de backup padrão Alterar o diretório padrão para novos arquivos de backup.
Tipo de despejo Escolher o tipo de arquivo de despejo de memória de despejo a ser coletado.
Edição Definir a edição do SQL Server.
Alta disponibilidade Habilitar grupos de disponibilidade.
Diretório de auditoria local Definir um diretório para adicionar arquivos de auditoria local.
Localidade Definir a localidade a ser usada pelo SQL Server.
Limite de memória Definir o limite de memória para o SQL Server.
Coordenador de Transações Distribuídas da Microsoft Configurar e solucionar problemas do MSDTC no Linux.
EULAs para Serviços de Machine Learning Aceitar os EULAs de R e Python para pacotes de Serviços de Machine Learning. Aplica-se somente ao SQL Server 2019.
Configurações de rede Configurações de rede adicionais para SQL Server.
outboundnetworkaccess Habilitar o acesso à rede para extensões Java, R e Python dos Serviços de Machine Learning.
Porta TCP Alterar a porta em que o SQL Server escuta conexões.
TLS Configurar o protocolo TLS.
Sinalizadores de rastreamento Definir os sinalizadores de rastreamento que o serviço vai usar.

Dica

Algumas dessas configurações também podem ser definidas com variáveis de ambiente. Para obter mais informações, confira Definir configurações do SQL Server com variáveis de ambiente.

Dicas de uso

  • Para grupos de disponibilidade Always On e clusters de disco compartilhados, sempre faça as mesmas alterações de configuração em cada nó.

  • Para o cenário de cluster de disco compartilhado, não tente reiniciar o serviço mssql-server para aplicar as alterações. O SQL Server está em execução como um aplicativo. Em vez disso, coloque o recurso offline e, em seguida, novamente online.

  • Esses exemplos executam mssql-conf especificando o caminho completo: /opt/mssql/bin/mssql-conf. Se você optar por navegar até esse caminho, execute mssql-conf no contexto do diretório atual: ./mssql-conf.

Configurar a autenticação do Active Directory

A opção setup-ad-keytab pode ser usada para criar um keytab, mas o usuário e os SPNs (Nomes da Entidade de Serviço) devem ter sido criados para usar essa opção. O utilitário do Active Directory, adutil, pode ser usado para criar usuários, SPNs e keytabs.

Para obter opções sobre como usar setup-ad-keytab, execute o seguinte comando:

sudo /opt/mssql/bin/mssql-conf setup-ad-keytab --help

A opção validate-ad-config validará a configuração para a autenticação do Active Directory.

Habilitar o SQL Server Agent

A configuração sqlagent.enabled habilita o SQL Server Agent. Por padrão, o SQL Server Agent está desabilitado. Se sqlagent.enabled não está presente no arquivo de configurações mssql.conf, o SQL Server pressupõe internamente que o SQL Server Agent está desabilitado.

Para alterar essa configuração, use as seguintes etapas:

  1. Habilite o SQL Server Agent:

    sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true 
    
  2. Reinicie o serviço SQL Server:

    sudo systemctl restart mssql-server
    

Definir o perfil padrão do Database Mail para o SQL Server em Linux

O sqlagent.databasemailprofile permite que você defina o perfil padrão do DB Mail para alertas de email.

sudo /opt/mssql/bin/mssql-conf set sqlagent.databasemailprofile <profile_name>

Logs de erros do SQL Agent

As configurações sqlagent.errorlogfile e sqlagent.errorlogginglevel permitem definir o caminho do arquivo de log do SQL Agent e o nível de registros em log, respectivamente.

sudo /opt/mssql/bin/mssql-conf set sqlagent.errorfile <path>

Os níveis de registros em log do SQL Agent são iguais aos seguintes valores de bitmask:

  • 1 = Erros
  • 2 = Avisos
  • 4 = Informações

Se você quiser capturar todos os níveis, use 7 como o valor.

sudo /opt/mssql/bin/mssql-conf set sqlagent.errorlogginglevel <level>

Alterar a ordenação do SQL Server

A opção set-collation altera o valor da ordenação para qualquer um dos agrupamentos compatíveis. Para fazer essa alteração, o serviço SQL Server precisa ser interrompido.

  1. Primeiro faça backup de todos os bancos de dados de usuário no servidor.

  2. Use o procedimento armazenado sp_detach_db para desanexar os bancos de dados de usuário.

  3. Execute a opção set-collation e siga os prompts:

    sudo /opt/mssql/bin/mssql-conf set-collation
    
  4. O utilitário mssql-conf tentará alterar para o valor de ordenação especificado e reiniciar o serviço. Se houver erros, ele reverterá a ordenação para o valor anterior.

  5. Restaure os backups de banco de dados do usuário.

Para obter uma lista de agrupamentos compatíveis, execute a função sys.fn_helpcollations: SELECT Name from sys.fn_helpcollations().

Configurar os comentários do cliente

A configuração telemetry.customerfeedback determina se o SQL Server envia comentários à Microsoft ou não. Por padrão, esse valor é definido como true para todas as edições. Para alterar o valor, execute os seguintes comandos:

Importante

Você não pode desligar os comentários do cliente para edições gratuitas do SQL Server, Express e Developer.

  1. Execute o script mssql-conf como raiz com o comando set para telemetry.customerfeedback. O exemplo a seguir desativa os comentários do cliente, especificando false.

    sudo /opt/mssql/bin/mssql-conf set telemetry.customerfeedback false
    
  2. Reinicie o serviço SQL Server:

    sudo systemctl restart mssql-server
    

Para obter mais informações, confira Comentários do cliente para SQL Server em Linux e a Política de Privacidade do SQL Server.

Alterar a localização padrão do diretório de dados ou de log

As configurações filelocation.defaultdatadir e filelocation.defaultlogdir alteram a localização em que o novo banco de dados e os arquivos de log são criados. Por padrão, essa localização é /var/opt/mssql/data. Para alterar essas configurações, use as seguintes etapas:

  1. Crie o diretório de destino para novos arquivos de log e de dados de bancos de dados. O exemplo a seguir cria um diretório /tmp/data:

    sudo mkdir /tmp/data
    
  2. Altere o proprietário e o grupo do diretório para o usuário mssql:

    sudo chown mssql /tmp/data
    sudo chgrp mssql /tmp/data
    
  3. Use mssql-conf para alterar o diretório de dados padrão com o comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /tmp/data
    
  4. Reinicie o serviço SQL Server:

    sudo systemctl restart mssql-server
    
  5. Agora, todos os arquivos de banco de dados para os novos bancos de dados criados serão armazenados nessa nova localização. Se quiser alterar a localização dos arquivos de log (.ldf) dos novos bancos de dados, você poderá usar o seguinte comando "set":

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /tmp/log
    
  6. Esse comando também pressupõe que um diretório/tmp/log exista e que esteja sob o usuário e grupo mssql.

Alterar a localização do diretório padrão de arquivos de banco de dados mestre

A configuração filelocation.masterdatafile e filelocation.masterlogfile altera a localização em que o mecanismo de SQL Server procura os arquivos de banco de dados mestre. Por padrão, essa localização é /var/opt/mssql/data.

Para alterar essas configurações, use as seguintes etapas:

  1. Crie o diretório de destino para novos arquivos de log de erros. O exemplo a seguir cria um novo diretório /tmp/masterdatabasedir:

    sudo mkdir /tmp/masterdatabasedir
    
  2. Altere o proprietário e o grupo do diretório para o usuário mssql:

    sudo chown mssql /tmp/masterdatabasedir
    sudo chgrp mssql /tmp/masterdatabasedir
    
  3. Use mssql-conf para alterar o diretório de banco de dados mestre padrão para os dados mestres e os arquivos de log com o comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.masterdatafile /tmp/masterdatabasedir/master.mdf
    sudo /opt/mssql/bin/mssql-conf set filelocation.masterlogfile /tmp/masterdatabasedir/mastlog.ldf
    

    Observação

    Além de mover os dados mestres e os arquivos de log, isso também move a localização padrão para todos os outros bancos de dados do sistema.

  4. Interromper o serviço do SQL Server:

    sudo systemctl stop mssql-server
    
  5. Mover o master.mdf e o masterlog.ldf:

    sudo mv /var/opt/mssql/data/master.mdf /tmp/masterdatabasedir/master.mdf 
    sudo mv /var/opt/mssql/data/mastlog.ldf /tmp/masterdatabasedir/mastlog.ldf
    
  6. Iniciar o serviço do SQL Server:

    sudo systemctl start mssql-server
    

    Observação

    Se o SQL Server não puder localizar os arquivos master.mdf e mastlog.ldf no diretório especificado, uma cópia modelo dos bancos de dados do sistema será criada automaticamente no diretório especificado e SQL Server será inicializado com êxito. No entanto, metadados como bancos de dados de usuário, logons de servidor, certificados de servidor, chaves de criptografia, trabalhos do SQL Agent ou senha de logon de SA antiga não serão atualizados no novo banco de dados mestre. Para continuar usando os metadados existentes, você precisará interromper o SQL Server e mover o master.mdf e o mastlog.ldf antigos para a nova localização especificada e iniciar o SQL Server.

Alterar o nome de arquivos de banco de dados mestre

A configuração filelocation.masterdatafile e filelocation.masterlogfile altera a localização em que o mecanismo de SQL Server procura os arquivos de banco de dados mestre. Você também pode usar isso para alterar o nome dos arquivos de log e do banco de dados mestre.

Para alterar essas configurações, use as seguintes etapas:

  1. Interromper o serviço do SQL Server:

    sudo systemctl stop mssql-server
    
  2. Use mssql-conf para alterar os nomes de banco de dados mestre esperados para os arquivos de log e os dados mestre com o comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.masterdatafile /var/opt/mssql/data/masternew.mdf
    sudo /opt/mssql/bin/mssql-conf set filelocation.mastlogfile /var/opt/mssql/data/mastlognew.ldf
    

    Importante

    Você só pode alterar o nome dos arquivos de log e do banco de dados mestre após o SQL Server ter sido iniciado com êxito. Antes da execução inicial, o SQL Server espera que os arquivos sejam nomeados master.mdf e mastlog.ldf.

  3. Alterar o nome dos arquivos de log e dos dados de banco de dados mestre

    sudo mv /var/opt/mssql/data/master.mdf /var/opt/mssql/data/masternew.mdf
    sudo mv /var/opt/mssql/data/mastlog.ldf /var/opt/mssql/data/mastlognew.ldf
    
  4. Iniciar o serviço do SQL Server:

    sudo systemctl start mssql-server
    

Alterar a localização padrão de despejo do diretório

A configuração filelocation.defaultdumpdir altera a localização padrão em que a memória e os despejos SQL são gerados sempre que há uma falha. Por padrão, esses arquivos são gerados em /var/opt/mssql/log.

Para configurar essa nova localização, use os seguintes comandos:

  1. Crie o diretório de destino para novos arquivos de despejo. O exemplo a seguir cria um diretório /tmp/dump:

    sudo mkdir /tmp/dump
    
  2. Altere o proprietário e o grupo do diretório para o usuário mssql:

    sudo chown mssql /tmp/dump
    sudo chgrp mssql /tmp/dump
    
  3. Use mssql-conf para alterar o diretório de dados padrão com o comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultdumpdir /tmp/dump
    
  4. Reinicie o serviço SQL Server:

    sudo systemctl restart mssql-server
    

Alterar a localização padrão do diretório de arquivos de log de erros

A configuração filelocation.errorlogfile altera a localização em que o novo log de erros, o rastreamento padrão do Profiler, os arquivos XE da sessão de integridade do sistema e os arquivos XE da sessão do Hekaton são criados. Por padrão, essa localização é /var/opt/mssql/log. O diretório no qual o arquivo de log de erros do SQL é definido se torna o diretório de logs padrão para outros logs.

Para alterar essas configurações:

  1. Crie o diretório de destino para novos arquivos de log de erros. O exemplo a seguir cria um diretório /tmp/logs:

    sudo mkdir /tmp/logs
    
  2. Altere o proprietário e o grupo do diretório para o usuário mssql:

    sudo chown mssql /tmp/logs
    sudo chgrp mssql /tmp/logs
    
  3. Use mssql-conf para alterar o nome do arquivo de log de erros padrão com o comando set:

    sudo /opt/mssql/bin/mssql-conf set filelocation.errorlogfile /tmp/logs/errorlog
    
  4. Reinicie o serviço SQL Server:

    sudo systemctl restart mssql-server
    

A configuração errorlog.numerrorlogs permitirá que você especifique o número de logs de erros mantidos antes de reiniciar o ciclo do log.

Alterar a localização padrão de backup do diretório

A configuração filelocation.defaultbackupdir altera a localização padrão em que os arquivos de backup são gerados. Por padrão, esses arquivos são gerados em /var/opt/mssql/data.

Para configurar essa nova localização, use os seguintes comandos:

  1. Crie o diretório de destino para novos arquivos de backup. O exemplo a seguir cria um diretório /tmp/backup:

    sudo mkdir /tmp/backup
    
  2. Altere o proprietário e o grupo do diretório para o usuário mssql:

    sudo chown mssql /tmp/backup
    sudo chgrp mssql /tmp/backup
    
  3. Use mssql-conf para alterar o diretório de backup padrão com o comando "set":

    sudo /opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir /tmp/backup
    
  4. Reinicie o serviço SQL Server:

    sudo systemctl restart mssql-server
    

Especificar configurações de despejo de núcleo

Se ocorrer uma exceção ou falha em um dos processos de SQL Server, o SQL Server criará um despejo de memória. Capturar um despejo de memória pode levar muito tempo e ocupar um espaço significativo. Para economizar recursos e evitar despejos de memória repetidos, há uma configuração para desativar a captura automática de despejo, coredump.disablecoredump.

sudo /opt/mssql/bin/mssql-conf set coredump.disablecoredump <true or false>

Os usuários ainda podem gerar despejos de memória manualmente quando o despejo de memória automático está desabilitado (coredump.disablecoredump definido como true).

Há duas opções para controlar o tipo de despejo de memória que o SQL Server coleta: coredump.coredumptype e coredump.captureminiandfull. Eles estão relacionados às duas fases da captura de despejo principal.

A primeira fase da captura é controlada pela configuração coredump.coredumptype, que determina o tipo de arquivo de despejo gerado durante uma exceção. A segunda fase é habilitada quando a configuração coredump.captureminiandfull. Se coredump.captureminiandfull for definido como true, o arquivo de despejo especificado por coredump.coredumptype e um segundo minidespejo serão gerados. Definir coredump.captureminiandfull como false desabilita a segunda tentativa de captura.

  1. Decida se deseja capturar o minidespejo e o despejo completo com a configuração coredump.captureminiandfull.

    sudo /opt/mssql/bin/mssql-conf set coredump.captureminiandfull <true or false>
    

    Padrão: false

  2. Especifique o tipo de arquivo de despejo com a configuração coredump.coredumptype.

    sudo /opt/mssql/bin/mssql-conf set coredump.coredumptype <dump_type>
    

    Padrão: miniplus

    A tabela a seguir lista os possíveis valores coredump.coredumptype.

    Type Descrição
    mini Mini é o menor tipo de arquivo de despejo. Ele usa as informações do sistema Linux para determinar threads e módulos no processo. O despejo contém apenas os módulos e pilhas de thread do ambiente de host. Ele não contém referências de memória indiretas nem globais.
    miniplus O MiniPlus é semelhante ao mini, mas inclui memória adicional. Ele entende os mecanismos internos do SQLPAL e o ambiente de host, adicionando as seguintes regiões de memória ao despejo:

    – Vários globais
    – Toda memória acima de 64 TB
    – Todas as regiões nomeadas encontradas em /proc/$pid/maps
    – Memória indireta de threads e pilhas
    – Informações de thread
    – Teb e Peb associados
    – Informações do módulo
    – VMM e árvore VAD
    filtrado Filtrado usa um design baseado em subtração em que toda a memória no processo é incluída, a menos que seja especificamente excluída. O design entende os mecanismos internos do SQLPAL e o ambiente de host, excluindo certas regiões do despejo.
    completo Completo é um despejo de processo completo que inclui todas as regiões localizadas em /proc/$pid/maps. Isso não é controlado pela configuração coredump.captureminiandfull.

Edition

A edição do SQL Server pode ser alterada usando a opção set-edition. Para alterar a edição do SQL Server, é necessário primeiro parar o serviço SQL Server. Para obter mais informações sobre edições do SQL Server em Linux disponíveis, confira Edições do SQL Server

Alta disponibilidade

A opção hadr.hadrenabled habilita grupos de disponibilidade na instância do SQL Server. O comando a seguir habilita os grupos de disponibilidade definindo hadr.hadrenabled para 1. É preciso reiniciar o SQL Server para que essa configuração entre em vigor.

sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled  1
sudo systemctl restart mssql-server

Para obter informações sobre como isso é usado com grupos de disponibilidade, confira os dois tópicos a seguir.

Definir o diretório de auditoria local

A configuração telemetry.userrequestedlocalauditdirectory habilita a auditoria local e permite que você defina o diretório em que os logs de auditoria local são criados.

  1. Crie um diretório de destino para novos logs de Auditoria Local. O exemplo a seguir cria um diretório /tmp/audit:

    sudo mkdir /tmp/audit
    
  2. Altere o proprietário e o grupo do diretório para o usuário mssql:

    sudo chown mssql /tmp/audit
    sudo chgrp mssql /tmp/audit
    
  3. Execute o script mssql-conf como raiz com o comando set para telemetry.userrequestedlocalauditdirectory:

    sudo /opt/mssql/bin/mssql-conf set telemetry.userrequestedlocalauditdirectory /tmp/audit
    
  4. Reinicie o serviço SQL Server:

    sudo systemctl restart mssql-server
    

Para obter mais informações, confira Comentários do cliente para SQL Server em Linux.

Alterar a localidade do SQL Server

A configuração language.lcid altera a localidade do SQL Server para qualquer LCID (identificador de idioma) com suporte.

  1. O exemplo a seguir altera a localidade para francês (1036):

    sudo /opt/mssql/bin/mssql-conf set language.lcid 1036
    
  2. Reinicie o serviço do SQL Server para aplicar as alterações:

    sudo systemctl restart mssql-server
    

Definir o limite de memória

A configuração memory.memorylimitmb controla a quantidade de memória física (em MB) disponível para o SQL Server. O padrão é 80% da memória física.

  1. Execute o script mssql-conf como raiz com o comando set para memory.memorylimitmb. O exemplo a seguir altera a memória disponível para SQL Server para 3,25 GB (3.328 MB).

    sudo /opt/mssql/bin/mssql-conf set memory.memorylimitmb 3328
    
  2. Reinicie o serviço do SQL Server para aplicar as alterações:

    sudo systemctl restart mssql-server
    

Necessidades de memória adicional

As opções a seguir estão disponíveis para as configurações de memória.

Opção Descrição
memory.disablememorypressure Desabilita a demanda de memória do SQL Server. Os valores podem ser true ou false.
memory.memory_optimized Habilita ou desabilita recursos de otimização de memória no SQL Server – capacitação de arquivo de memória persistente, proteção de memória. Os valores podem ser true ou false.
memory.enablecontainersharedmemory Aplicável somente para contêineres do SQL Server. Use essa configuração para habilitar a memória compartilhada dentro de contêineres do SQL Server. Por padrão, ele é definido como false. Os valores podem ser true ou false.

Configurar MSDTC

As configurações network.rpcport e distributedtransaction.servertcpport são usadas para configurar o MSDTC (Coordenador de Transações Distribuídas da Microsoft). Para alterar essas configurações, execute os seguintes comandos:

  1. Execute o script mssql-conf como raiz com o comando set para "network.rpcport":

    sudo /opt/mssql/bin/mssql-conf set network.rpcport <rcp_port>
    
  2. Em seguida, defina a configuração "distributedtransaction.servertcpport":

    sudo /opt/mssql/bin/mssql-conf set distributedtransaction.servertcpport <servertcpport_port>
    

Além de definir esses valores, você também deve configurar o roteamento e atualizar o firewall para a porta 135. Para obter mais informações sobre como fazer isso, confira Como configurar o MSDTC no Linux.

Há várias outras configurações de mssql-conf que você pode usar para monitorar e solucionar problemas do MSDTC. A tabela a seguir descreve resumidamente essas configurações. Para obter mais informações o uso delas, confira os detalhes no artigo de suporte do Windows, Como habilitar o rastreamento de diagnóstico para o MS DTC.

configuração mssql-conf Descrição
distributedtransaction.allowonlysecurerpccalls Configurar chamadas RPC somente seguras para transações distribuídas
distributedtransaction.fallbacktounsecurerpcifnecessary Configurar chamadas RPC somente de segurança para transações distribuídas
distributedtransaction.maxlogsize Tamanho do arquivo de log de transações do DTC em MB. O padrão é 64 MB
distributedtransaction.memorybuffersize Tamanho do buffer circular no qual os rastreamentos são armazenados. Esse tamanho é em MB e o padrão é 10 MB
distributedtransaction.servertcpport Porta do servidor RPC do MSDTC
distributedtransaction.trace_cm Rastreamentos no gerenciador de conexões
distributedtransaction.trace_contact Rastreia o pool de contatos e os contatos
distributedtransaction.trace_gateway Rastreia a origem do gateway
distributedtransaction.trace_log Rastreamento de log
distributedtransaction.trace_misc Rastreamentos que não podem ser categorizados em outras categorias
distributedtransaction.trace_proxy Rastreamentos gerados no proxy do MSDTC
distributedtransaction.trace_svc Rastreia a inicialização do serviço e do arquivo .exe
distributedtransaction.trace_trace A infraestrutura de rastreamento propriamente dita
distributedtransaction.trace_util Rastreia rotinas do utilitário que são chamadas de vários locais
distributedtransaction.trace_xa Origem de rastreamento do XATM (Gerenciador de Transação XA)
distributedtransaction.tracefilepath Pasta na qual os arquivos de rastreamento devem ser armazenados
distributedtransaction.turnoffrpcsecurity Habilitar ou desabilitar a segurança RPC para transações distribuídas

Aceitar EULAs para Serviços de Machine Learning

A adição de pacotes R ou Python de aprendizado de máquina ao mecanismo de banco de dados requer que você aceite os termos de licenciamento para distribuições open-source de R e Python. A tabela a seguir enumera todas as opções ou comandos disponíveis relacionados a EULAs de Serviços de Machine Learning. O mesmo parâmetro de EULA é usado para R e Python, dependendo do que você instalou.

# For all packages: database engine and mlservices
# Setup prompts for mlservices EULAs, which you need to accept
sudo /opt/mssql/bin/mssql-conf setup

# Add R or Python to an existing installation
sudo /opt/mssql/bin/mssql-conf setup accept-eula-ml

# Alternative valid syntax
# Adds the EULA section to the INI and sets acceptulam to yes
sudo /opt/mssql/bin/mssql-conf set EULA accepteulaml Y

# Rescind EULA acceptance and removes the setting
sudo /opt/mssql/bin/mssql-conf unset EULA accepteulaml

Você também pode adicionar a aceitação de EULA diretamente ao arquivo mssql.conf:

[EULA]
accepteula = Y
accepteulaml = Y

Habilitar acesso à rede de saída

O acesso à rede de saída para extensões R, Python e Java no recurso de Serviços de Machine Learning do SQL Server está desabilitado por padrão. Para habilitar as solicitações de saída, defina a propriedade booliana "outboundnetworkaccess" usando mssql-conf.

Depois de definir a propriedade, reinicie o serviço SQL Server Launchpad para ler os valores atualizados do arquivo INI. Uma mensagem de reinicialização lembrará você sempre que uma configuração relacionada à extensibilidade for modificada.

# Adds the extensibility section and property.
# Sets "outboundnetworkaccess" to true.
# This setting is required if you want to access data or operations off the server.
sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1

# Turns off network access but preserves the setting
sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 0

# Removes the setting and rescinds network access
sudo /opt/mssql/bin/mssql-conf unset extensibility.outboundnetworkaccess

Você também pode adicionar "outboundnetworkaccess" diretamente ao arquivo mssql.conf:

[extensibility]
outboundnetworkaccess = 1

Alterar a porta TCP

A configuração network.tcpport altera a porta TCP em que o SQL Server escuta conexões. Por padrão, essa porta é definida para 1433. Para alterar a porta, execute os seguintes comandos:

  1. Execute o script mssql-conf como raiz com o comando "set" para "network.tcpport":

    sudo /opt/mssql/bin/mssql-conf set network.tcpport <new_tcp_port>
    
  2. Reinicie o serviço SQL Server:

    sudo systemctl restart mssql-server
    
  3. Ao se conectar ao SQL Server agora, você deve especificar a porta personalizada com uma vírgula (,) após o nome do host ou o endereço IP. Por exemplo, para se conectar com o SQLCMD, você usaria o seguinte comando:

    sqlcmd -S localhost,<new_tcp_port> -U test -P test
    

Especificar configurações de TLS

As opções a seguir configuram o TLS para uma instância do SQL Server em execução no Linux.

Opção Descrição
network.forceencryption Se for 1, SQL Server forçará a criptografia de todas as conexões. Por padrão, essa opção é 0.
network.tlscert O caminho absoluto para o arquivo de certificado que SQL Server usa para TLS. Exemplo: /etc/ssl/certs/mssql.pem o arquivo de certificado deve ser acessível pela conta mssql. A Microsoft recomenda restringir o acesso ao arquivo usando o chown mssql:mssql <file>; chmod 400 <file>.
network.tlskey O caminho absoluto para o arquivo de chave privada que SQL Server usa para TLS. Exemplo: /etc/ssl/private/mssql.key o arquivo de certificado deve ser acessível pela conta mssql. A Microsoft recomenda restringir o acesso ao arquivo usando o chown mssql:mssql <file>; chmod 400 <file>.
network.tlsprotocols Uma lista separada por vírgula de quais protocolos TLS são permitidos pelo SQL Server. O SQL Server sempre tenta negociar o protocolo mais forte permitido. Se um cliente não der suporte a nenhum protocolo permitido, o SQL Server rejeitará a tentativa de conexão. Para compatibilidade, todos os protocolos compatíveis são permitidos por padrão (1.2, 1.1 e 1.0). Se os clientes dão suporte ao protocolo TLS 1.2, a Microsoft recomenda que ele seja o único permitido.
network.tlsciphers Especifica quais codificações são permitidas pelo SQL Server para protocolo TLS. Essa cadeia de caracteres deve ser formatada segundo o formato de lista de codificação do OpenSSL. Em geral, não é necessário alterar essa opção.
Por padrão, são permitidas as seguintes codificações:
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
network.kerberoskeytabfile Caminho para o arquivo keytab do Kerberos

Para obter um exemplo de como usar as configurações de protocolo TLS, confira Criptografar conexões com o SQL Server em Linux.

Configurações de rede

Confira o Tutorial: usar a autenticação do Active Directory com o SQL Server em Linux para obter informações abrangentes sobre como usar a autenticação do AD com o SQL Server em Linux.

As opções a seguir são configurações de rede adicionais que podem ser definidas usando mssql-conf.

Opção Descrição
network.disablesssd Desabilita a consulta a SSSD para obter informações de conta do AD e utilizar chamadas LDAP por padrão. Os valores podem ser true ou false.
network.enablekdcfromkrb5conf Habilita a pesquisa de informações do KDC por meio de krb5.conf. Os valores podem ser true ou false.
network.forcesecureldap Força o uso de LDAPS para entrar em contato com o controlador de domínio. Os valores podem ser true ou false.
network.ipaddress Endereço IP para conexões de entrada.
network.kerberoscredupdatefrequency Tempo em segundos entre as verificações de credenciais Kerberos que precisam ser atualizadas. O valor é um inteiro.
network.privilegedadaccount Usuário privilegiado do AD a ser usado para autenticação do AD. O valor é <username>. Para saber mais, confira Tutorial: Usar autenticação do Azure Active Directory com o SQL Server em Linux
uncmapping Mapeia o caminho UNC para um caminho local. Por exemplo, sudo /opt/mssql/bin/mssql-conf set uncmapping //servername/sharename /tmp/folder.

Habilitar/desabilitar sinalizadores de rastreamento

Essa opção de sinalizador de rastreamento habilita ou desabilita o sinalizadores de rastreamento para a inicialização do serviço SQL Server. Para habilitar/desabilitar um sinalizador de rastreamento, use os seguintes comandos:

  1. Para habilitar um sinalizador de rastreamento, use o comando a seguir. Por exemplo, para o sinalizador de rastreamento 1234:

    sudo /opt/mssql/bin/mssql-conf traceflag 1234 on
    
  2. Você pode habilitar vários sinalizadores de rastreamento especificando-os separadamente:

    sudo /opt/mssql/bin/mssql-conf traceflag 2345 3456 on
    
  3. De modo semelhante, você pode desabilitar um ou mais sinalizadores de rastreamento habilitados, especificando-os e adicionando o parâmetro off:

    sudo /opt/mssql/bin/mssql-conf traceflag 1234 2345 3456 off
    
  4. Reinicie o serviço do SQL Server para aplicar as alterações:

    sudo systemctl restart mssql-server
    

Remover uma configuração

Para remover a definição de qualquer configuração feita com mssql-conf set, chame mssql-conf com a opção unset e o nome da configuração. Isso limpa a configuração, retornando-a efetivamente ao valor padrão.

  1. O exemplo a seguir limpa a opção network.tcpport.

    sudo /opt/mssql/bin/mssql-conf unset network.tcpport
    
  2. Reinicie o serviço SQL Server.

    sudo systemctl restart mssql-server
    

Exibir as configurações atuais

Para exibir as configurações definidas, execute o seguinte comando para gerar o conteúdo do arquivo mssql.conf como saída:

sudo cat /var/opt/mssql/mssql.conf

As configurações que não foram exibidas neste arquivo usam os valores padrão. A próxima seção fornece um arquivo mssql.conf de exemplo.

Exibir várias opções

Para exibir as diversas opções que podem ser configuradas usando o utilitário mssql-conf, execute o comando help:

sudo /opt/mssql/bin/mssql-conf --help

Os resultados fornecerão várias opções de configuração e uma breve descrição para cada uma das configurações.

Formato mssql.conf

O arquivo /var/opt/mssql/mssql.conf a seguir fornece um exemplo para cada configuração. Você pode usar esse formato para fazer alterações manualmente no arquivo mssql.conf conforme necessário. Se você alterar o arquivo manualmente, deverá reiniciar o SQL Server antes que as alterações sejam aplicadas. Para usar o arquivo mssql.conf com o Docker, você deverá fazer com que o Docker persista seus dados. Primeiro, adicione um arquivo mssql.conf completo ao diretório de host e, em seguida, execute o contêiner. Há um exemplo disso nos Comentários do cliente.

[EULA]
accepteula = Y

[coredump]
captureminiandfull = true
coredumptype = full

[filelocation]
defaultbackupdir = /var/opt/mssql/data/
defaultdatadir = /var/opt/mssql/data/
defaultdumpdir = /var/opt/mssql/data/
defaultlogdir = /var/opt/mssql/data/

[hadr]
hadrenabled = 0

[language]
lcid = 1033

[memory]
memorylimitmb = 4096

[network]
forceencryption = 0
ipaddress = 10.192.0.0
kerberoskeytabfile = /var/opt/mssql/secrets/mssql.keytab
tcpport = 1401
tlscert = /etc/ssl/certs/mssql.pem
tlsciphers = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
tlskey = /etc/ssl/private/mssql.key
tlsprotocols = 1.2,1.1,1.0

[sqlagent]
databasemailprofile = default
errorlogfile = /var/opt/mssql/log/sqlagentlog.log
errorlogginglevel = 7

[telemetry]
customerfeedback = true
userrequestedlocalauditdirectory = /tmp/audit

[traceflag]
traceflag0 = 1204
traceflag1 = 2345
traceflag = 3456
[EULA]
accepteula = Y
accepteulaml = Y

[coredump]
captureminiandfull = true
coredumptype = full

[distributedtransaction]
servertcpport = 51999

[filelocation]
defaultbackupdir = /var/opt/mssql/data/
defaultdatadir = /var/opt/mssql/data/
defaultdumpdir = /var/opt/mssql/data/
defaultlogdir = /var/opt/mssql/data/

[hadr]
hadrenabled = 0

[language]
lcid = 1033

[memory]
memorylimitmb = 4096

[network]
forceencryption = 0
ipaddress = 10.192.0.0
kerberoskeytabfile = /var/opt/mssql/secrets/mssql.keytab
rpcport = 13500
tcpport = 1401
tlscert = /etc/ssl/certs/mssql.pem
tlsciphers = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA
tlskey = /etc/ssl/private/mssql.key
tlsprotocols = 1.2,1.1,1.0

[sqlagent]
databasemailprofile = default
errorlogfile = /var/opt/mssql/log/sqlagentlog.log
errorlogginglevel = 7

[telemetry]
customerfeedback = true
userrequestedlocalauditdirectory = /tmp/audit

[traceflag]
traceflag0 = 1204
traceflag1 = 2345
traceflag = 3456

Próximas etapas

Para, em vez disso, usar variáveis de ambiente para fazer algumas dessas alterações de configuração, confira Definir configurações do SQL Server com variáveis de ambiente.

Para outras ferramentas e cenários de gerenciamento, confira Gerenciar o SQL Server em Linux.