DSN e palavras-chave e atributos da cadeia de conexão

Este artigo lista as palavras-chave para strings de conexão e DSNs, e os atributos de conexão para SQLSetConnectAttr e SQLGetConnectAttr, disponíveis no ODBC Driver for SQL Server.

Palavras-chave e atributos de conexão suportados por DSN e cadeia de conexão

A tabela a seguir lista as palavras-chave e atributos disponíveis para cada plataforma (L: Linux; M: macOS; W: Windows). Selecione a palavra-chave ou o atributo para obter mais detalhes.

Palavras-chave da cadeia de conexão/DSN Atributo de conexão Plataforma
Addr LMW
Endereço LMW
AnsiNPW SQL_COPT_SS_ANSI_NPW LMW
APP LMW
ApplicationIntent SQL_COPT_SS_APPLICATION_INTENT LMW
AttachDBFileName SQL_COPT_SS_ATTACHDBFILENAME LMW
Autenticação SQL_COPT_SS_AUTHENTICATION LMW
AutoTranslate SQL_COPT_SS_TRANSLATE LMW
ClientCertificate LMW
ClientKey LMW
ColumnEncryption SQL_COPT_SS_COLUMN_ENCRYPTION LMW
ConcatNullYieldsNull (v18.6+) SQL_COPT_SS_CONCAT_NULL LMW
ConnectRetryCount SQL_COPT_SS_CONNECT_RETRY_COUNT LMW
ConnectRetryInterval SQL_COPT_SS_CONNECT_RETRY_INTERVAL LMW
Banco de dados SQL_ATTR_CURRENT_CATALOG LMW
Descrição LMW
Driver LMW
DSN LMW
Encrypt SQL_COPT_SS_ENCRYPT LMW
Failover_Partner SQL_COPT_SS_FAILOVER_PARTNER W
FailoverPartnerSPN SQL_COPT_SS_FAILOVER_PARTNER_SPN W
FileDSN LMW
GetDataExtensions (v18.0+) SQL_COPT_SS_GETDATA_EXTENSIONS LMW
HostnameInCertificate (v18.0+) LMW
IpAddressPreference (v18.1 e mais recente) LMW
KeepAlive (v17.4+, somente DSN anterior a 17.8) LMW
KeepAliveInterval (v17.4+; somente para DSN antes da versão 17.8) LMW
KeystoreAuthentication LMW
KeystorePrincipalId LMW
KeystoreSecret LMW
Idioma LMW
LongAsMax (v18.0+) SQL_COPT_SS_LONGASMAX LMW
MARS_Connection SQL_COPT_SS_MARS_ENABLED LMW
MultiSubnetFailover SQL_COPT_SS_MULTISUBNET_FAILOVER LMW
Net LMW
Rede LMW
PWD LMW
QueryLog_On SQL_COPT_SS_PERF_QUERY W
QueryLogFile SQL_COPT_SS_PERF_QUERY_LOG W
QueryLogTIme SQL_COPT_SS_PERF_QUERY_INTERVAL W
QuotedId SQL_COPT_SS_QUOTED_IDENT LMW
Regional LMW
Replicação LMW
RetryExec (18.1 ou superior) LMW
SaveFile LMW
Servidor LMW
ServerCertificate (v18.1 e mais recente) LMW
ServerSPN SQL_COPT_SS_SERVER_SPN LMW
StatsLog_On SQL_COPT_SS_PERF_DATA W
StatsLogFile SQL_COPT_SS_PERF_DATA_LOG W
TransparentNetworkIPResolution SQL_COPT_SS_TNIR LMW
Trusted_Connection SQL_COPT_SS_INTEGRATED_SECURITY LMW
TrustServerCertificate SQL_COPT_SS_TRUST_SERVER_CERTIFICATE LMW
UID LMW
UseFMTONLY LMW
WSID LMW
SQL_ATTR_ACCESS_MODE
(SQL_ACCESS_MODE)
LMW
SQL_ATTR_ASYNC_DBC_EVENT W
SQL_ATTR_ASYNC_DBC_FUNCTIONS_ENABLE W
SQL_ATTR_ASYNC_DBC_PCALLBACK W
SQL_ATTR_ASYNC_DBC_PCONTEXT W
SQL_ATTR_ASYNC_ENABLE W
SQL_ATTR_AUTO_IPD LMW
SQL_ATTR_AUTOCOMMIT
(SQL_AUTOCOMMIT)
LMW
SQL_ATTR_CONNECTION_DEAD LMW
SQL_ATTR_CONNECTION_TIMEOUT LMW
SQL_ATTR_DBC_INFO_TOKEN LMW
SQL_ATTR_LOGIN_TIMEOUT
(SQL_LOGIN_TIMEOUT)
LMW
SQL_ATTR_METADATA_ID LMW
SQL_ATTR_ODBC_CURSORS
(SQL_ODBC_CURSORS)
LMW
SQL_ATTR_PACKET_SIZE
(SQL_PACKET_SIZE)
LMW
SQL_ATTR_QUIET_MODE
(SQL_QUIET_MODE)
LMW
SQL_ATTR_RESET_CONNECTION
(SQL_COPT_SS_RESET_CONNECTION)
LMW
SQL_ATTR_TRACE
(SQL_OPT_TRACE)
LMW
SQL_ATTR_TRACEFILE
(SQL_OPT_TRACEFILE)
LMW
SQL_ATTR_TRANSLATE_LIB
(SQL_TRANSLATE_DLL)
LMW
SQL_ATTR_TRANSLATE_OPTION
(SQL_TRANSLATE_OPTION)
LMW
SQL_ATTR_TXN_ISOLATION
(SQL_TXN_ISOLATION)
LMW
SQL_COPT_SS_ACCESS_TOKEN LMW
SQL_COPT_SS_ANSI_OEM W
SQL_COPT_SS_AUTOBEGINTXN LMW
SQL_COPT_SS_BCP LMW
SQL_COPT_SS_BROWSE_CACHE_DATA LMW
SQL_COPT_SS_BROWSE_CONNECT LMW
SQL_COPT_SS_BROWSE_SERVER LMW
SQL_COPT_SS_CEKEYSTOREDATA LMW
SQL_COPT_SS_CEKEYSTOREPROVIDER LMW
SQL_COPT_SS_CLIENT_CONNECTION_ID LMW
SQL_COPT_SS_CONNECTION_DEAD LMW
SQL_COPT_SS_DATACLASSIFICATION_VERSION (v17.4.2+) LMW
SQL_COPT_SS_ENLIST_IN_DTC W
SQL_COPT_SS_ENLIST_IN_XA LMW
SQL_COPT_SS_FALLBACK_CONNECT LMW
SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD LMW
SQL_COPT_SS_MUTUALLY_AUTHENTICATED LMW
SQL_COPT_SS_OLDPWD LMW
SQL_COPT_SS_PERF_DATA_LOG_NOW W
SQL_COPT_SS_PRESERVE_CURSORS LMW
SQL_COPT_SS_SPID (v17.5+) LMW
SQL_COPT_SS_TXN_ISOLATION LMW
SQL_COPT_SS_USER_DATA LMW
SQL_COPT_SS_WARN_ON_CP_ERROR LMW

Aqui estão algumas palavras-chave de cadeia de conexão e atributos de conexão que não estão documentados em Using Connection String Keywords with SQL Server Native Client, SQLSetConnectAttr e SQLSetConnectAttr Function.

Descrição

Descreve a fonte de dados.

SQL_COPT_SS_ANSI_OEM

Controla a conversão de dados de ANSI para OEM.

Valor do atributo Descrição
SQL_AO_OFF (predefinição) A tradução não está feita.
SQL_AO_ON A conversão foi concluída.

SQL_COPT_SS_AUTOBEGINTXN

A partir da versão 17.6, com o autocommit desativado, use esta opção para controlar a execução automática de BEGIN TRANSACTION após ROLLBACK ou COMMIT.

Valor do atributo Descrição
SQL_AUTOBEGINTXN_ON (predefinição) Automático BEGIN TRANSACTION após ROLLBACK ou COMMIT.
SQL_AUTOBEGINTXN_OFF Sem BEGIN TRANSACTION automático depois de ROLLBACK ou COMMIT.

SQL_COPT_SS_FALLBACK_CONNECT

Controla o uso de conexões de contingência do SQL Server. Essa opção não é mais suportada.

Valor do atributo Descrição
SQL_FB_OFF (predefinição) Desativa conexões de contingência.
SQL_FB_ON Ativa conexões alternativas.

Novas palavras-chave de cadeia de conexão e atributos de conexão

Autenticação – SQL_COPT_SS_AUTHENTICATION

Define o modo de autenticação a ser usado ao conectar-se ao SQL Server. Para obter mais informações, consulte Usar o Microsoft Entra ID com o driver ODBC.

Valor da palavra-chave Valor do atributo Descrição
SQL_AU_NONE (predefinição) Não definido. A combinação de outros atributos determina o modo de autenticação.
SqlPassword SQL_AU_PASSWORD Autenticação do SQL Server com nome de usuário e senha.
ActiveDirectoryIntegrated SQL_AU_AD_INTEGRATED Autenticação integrada do Microsoft Entra
ActiveDirectoryInteractive SQL_AU_AD_INTERACTIVE Autenticação interativa Microsoft Entra.
ActiveDirectoryMsi SQL_AU_AD_MSI Autenticação de identidade gerenciada do Microsoft Entra Para identidade atribuída pelo usuário, UID é definido como o ID do objeto da identidade do usuário.
ActiveDirectoryServicePrincipal SQL_AU_AD_SPA Autenticação da entidade de serviço do Microsoft Entra. UID é definido como o ID do cliente do principal de serviço. PWD está definido como o segredo do cliente.
ActiveDirectoryPassword SQL_AU_AD_PASSWORD [OBSOLETO] Autenticação de senha do Microsoft Entra.

ActiveDirectoryPassword está obsoleto. Para obter mais informações, confira ActiveDirectoryPassword está obsoleto.
SQL_AU_RESET Remover definição. Sobrescreve qualquer configuração de DSN ou string de conexão.

Observação

Ao usar a palavra-chave ou o atributo Authentication, especifique explicitamente a configuração Encrypt com o valor desejado na cadeia de conexão, no DSN ou no atributo de conexão. Veja Usando palavras-chave de cadeia de conexão com o SQL Server Native Client para obter detalhes.

ColumnEncryption – SQL_COPT_SS_COLUMN_ENCRYPTION

Controla a criptografia transparente de colunas (Always Encrypted). Para obter mais informações, veja Como usar Always Encrypted com o Windows ODBC Driver for SQL Server.

Valor da palavra-chave Valor do atributo Descrição
Enabled SQL_CE_ENABLED Habilita o Always Encrypted.
Disabled (predefinição) SQL_CE_DISABLED Desativa o Always Encrypted.
SQL_CE_RESULTSETONLY Permite apenas a descriptografia (resultados e valores de retorno).

ConcatNullYieldsNull - SQL_COPT_SS_CONCAT_NULL

Controla o uso do tratamento ISO de NULL ao concatenar cadeias de caracteres. Para obter mais informações, consulte SET CONCAT_NULL_YIELDS_NULL.

Valor da palavra-chave Valor do atributo Descrição
Yes (predefinição) SQL_CN_ON NULL A concatenação gera NULL.
No SQL_CN_OFF NULL a concatenação gera a cadeia.

Encrypt

Especifica se as conexões usam criptografia TLS na rede. Os valores possíveis são: yes/mandatory(18.0+), no/optional(18.0+) e strict(18.0+). O valor padrão é yes na versão 18.0 e superiores e no nas versões anteriores.

Independentemente da configuração de Encrypt, as credenciais de logon do servidor (nome de usuário e senha) são sempre criptografadas.

As configurações de Encrypt, TrustServerCertificate e Force Encryption do lado do servidor determinam se as conexões são criptografadas na rede. As tabelas a seguir mostram o efeito dessas configurações.

Driver ODBC 18 e mais recentes

Configuração de criptografia Confiar em Certificado do Servidor Criptografia forçada do servidor Resultado
Não Não Não O certificado do servidor não é verificado.
Os dados enviados entre o cliente e o servidor não são criptografados.
Não Sim Não O certificado do servidor não é verificado.
Os dados enviados entre o cliente e o servidor não são criptografados.
Sim Não Não O certificado do servidor é verificado.
Os dados enviados entre cliente e servidor são criptografados.
Sim Sim Não O certificado do servidor não é verificado.
Os dados enviados entre cliente e servidor são criptografados.
Não Não Sim O certificado do servidor é verificado.
Os dados enviados entre cliente e servidor são criptografados.
Não Sim Sim O certificado do servidor não é verificado.
Os dados enviados entre cliente e servidor são criptografados.
Sim Não Sim O certificado do servidor é verificado.
Os dados enviados entre cliente e servidor são criptografados.
Sim Sim Sim O certificado do servidor não é verificado.
Os dados enviados entre cliente e servidor são criptografados.
Rigoroso - - TrustServerCertificate é ignorado. O certificado do servidor é verificado.
Os dados enviados entre cliente e servidor são criptografados.

Observação

O Strict valor está disponível apenas contra servidores que suportam conexões TDS 8.0.

ODBC Driver 17 e anteriores

Configuração de criptografia Confiar em Certificado do Servidor Criptografia forçada do servidor Resultado
Não Não Não O certificado do servidor não é verificado.
Os dados enviados entre o cliente e o servidor não são criptografados.
Não Sim Não O certificado do servidor não é verificado.
Os dados enviados entre o cliente e o servidor não são criptografados.
Sim Não Não O certificado do servidor é verificado.
Os dados enviados entre cliente e servidor são criptografados.
Sim Sim Não O certificado do servidor não é verificado.
Os dados enviados entre cliente e servidor são criptografados.
Não Não Sim O certificado do servidor não é verificado.
Os dados enviados entre cliente e servidor são criptografados.
Não Sim Sim O certificado do servidor não é verificado.
Os dados enviados entre cliente e servidor são criptografados.
Sim Não Sim O certificado do servidor é verificado.
Os dados enviados entre cliente e servidor são criptografados.
Sim Sim Sim O certificado do servidor não é verificado.
Os dados enviados entre cliente e servidor são criptografados.

TransparentNetworkIPResolution – SQL_COPT_SS_TNIR

Controla a funcionalidade Transparent Network IP Resolution, um mecanismo legado de fallback com vários IPs para o driver ODBC. Essa configuração não afeta a sequência da conexão quando MultiSubnetFailover=Yes, que é a configuração recomendada para o Banco de Dados SQL do Azure, o Instância Gerenciada de SQL do Azure, o Banco de Dados SQL no Microsoft Fabric, ouvintes de grupo de disponibilidade e instâncias de cluster de failover. Para mais informações, veja Usar resolução transparente de IP de rede com o driver ODBC ou Alta disponibilidade e recuperação em desastres.

Valor da palavra-chave Valor do atributo Descrição
Enabled (predefinição) SQL_IS_ON Permite a Resolução Transparente de IP de Rede.
Disabled SQL_IS_OFF Desativa a resolução IP de rede transparente.

UseFMTONLY

Controla o uso de SET FMTONLY para metadados ao conectar-se ao SQL Server 2012 e posteriores.

Valor da palavra-chave Descrição
No (predefinição) Use sp_describe_first_result_set para metadados, se disponível.
Yes Use SET FMTONLY para metadados.

Replicação

Especifica o uso de um logon de replicação no Driver ODBC versão 17.8 e mais recente.

Valor da palavra-chave Descrição
No (predefinição) O login de replicação não é usado.
Yes Os gatilhos com a opção NOT FOR REPLICATION não são acionados na conexão.

RetryExec

A lógica de repetição configurável está disponível a partir da versão 18.1. Ela reexecuta automaticamente chamadas de função ODBC específicas com base em condições configuráveis. Ative este recurso por meio da cadeia de conexão usando a palavra-chave RetryExec, juntamente com uma lista de regras de repetição. Cada regra de retentativa possui três componentes separados por dois pontos: uma correspondência de erro, uma política de retentativa e uma correspondência de consulta.

A correspondência da consulta determina qual regra de nova tentativa usar para uma determinada execução. Ele corresponde ao texto do comando recebido (SQLExecDirect) ou ao texto do comando preparado no objeto da instrução (SQLExecute). Se mais de uma regra coincidir, a primeira regra correspondente da lista é usada. Esse comportamento permite listar regras em ordem crescente de generalidade. Se nenhuma regra corresponder, nenhuma nova tentativa será realizada.

Quando a execução resulta em erro e há uma regra de nova tentativa aplicável, o critério de correspondência do erro determina se a execução deve ser executada novamente.

O valor da RetryExec palavra-chave é uma lista de regras de tentativa separadas por ponto e vírgula.
RetryExec={rule1;rule2}

Uma regra de repetição é como a seguinte: <errormatch>:<retrypolicy>:<querymatch>

  • Correspondência de erros: Lista de códigos de erro separados por vírgulas. Por exemplo, especificar 1000,2000 lista os códigos de erro que você quer tentar novamente.

  • Política de Retentativa: Especifica o intervalo até a próxima tentativa. O primeiro parâmetro é o número de tentativas, e o segundo parâmetro é o atraso. Por exemplo, 3,10+7 significa três tentativas começando em 10, e cada tentativa seguinte aumenta em 7 segundos. Se você não especificar +7, cada nova tentativa é duplicada exponencialmente.

  • Correspondência de consulta: Especifica a consulta à qual você deseja corresponder. Se você não especificar nada, a regra se aplica a todas as consultas. Especificar SELECT significa todas as consultas que começam com SELECT.

Combinando os três componentes para usar em uma cadeia de conexão:

RetryExec={1000,2000:3,10+7:SELECT}

Essa regra significa: Para erros 1000 e 2000 em uma consulta que comece com SELECT, tente novamente duas vezes com um atraso inicial de 10 segundos, e adicione 7 segundos para cada tentativa seguinte.

Exemplos

40501,40540:4,5

Para erros 40501 e 40540, tente até quatro vezes, com um atraso inicial de 5 segundos e duplicação exponencial entre cada tentativa. Essa regra é aplicável a todas as consultas.

49919:2,10+:CREATE

Para erro 49919 em uma consulta que começa com CREATE, tente no máximo duas vezes, inicialmente após 10 segundos, e depois 20 segundos.

49918,40501,10928:5,10+5:SELECT c1

Para erros 49918, , e 10928 em consultas que começam com SELECT c1, tente novamente até cinco vezes, esperando 10 segundos na primeira tentativa e aumentando a espera em 405015 segundos depois.

Especifique as três regras anteriores juntas na cadeia de conexão da seguinte forma:

RetryExec={49918,40501,10928:5,10+5:SELECT c1;49919:2,10+:CREATE;40501,40540:4,5}

Coloque a regra mais geral (que corresponde a tudo) no final, para permitir que as duas regras mais específicas correspondam às respectivas consultas.

Certificado do Cliente

Especifica o certificado para autenticação em conexões de loopback. Essa opção está disponível apenas no SQL Server em Linux. As opções são:

Valor da opção Descrição
sha1:<hash_value> O driver ODBC usa o hash SHA1 para localizar um certificado na Loja de Certificados do Windows.
subject:<subject> O driver ODBC usa o assunto para localizar um certificado na Loja de Certificados do Windows.
file:<file_location>[,password:<password>] O driver ODBC usa um arquivo de certificado.

Se o certificado estiver em PFX formato e a chave privada dentro do PFX certificado estiver protegida por senha, inclua a password palavra-chave. Para certificados nos formatos PEM e DER, inclua o atributo ClientKey.

ClientKey

Especifica a localização do arquivo da chave privada para PEM ou DER certificados especificados pelo ClientCertificate atributo. Formato:

Valor da opção Descrição
file:<file_location>[,password:<password>] Especifica a localização do arquivo de chave privada.

Se o arquivo da chave privada estiver protegido por senha, inclua a password palavra-chave. Se a senha contiver algum , caractere, adicione um caractere extra , imediatamente após cada um. Por exemplo, se a senha for a,b,c, a senha com escape na cadeia de conexão será a,,b,,c.

HostnameInCertificate

Especifica o nome de host a esperar no certificado do servidor quando a criptografia for negociada, se for diferente do valor padrão derivado de Addr, Address, ou Server. A opção HostnameInCertificate é ignorada quando você usa a opção ServerCertificate.

IpAddressPreference

A partir da versão 18.1, use essa opção para especificar o tipo de endereço IP a priorizar para conexões.

As opções possíveis são IPv4First, IPv6First, e UsePlatformDefault. UsePlatformDefault conecta-se aos endereços na ordem em que são fornecidos pela chamada de sistema usada para resolver o nome do servidor. O valor padrão é IPv4First, que corresponde ao comportamento das versões anteriores.

Certificado do servidor

A partir da versão 18.1, use essa opção com modo de criptografia rigorosa. Use a ServerCertificate palavra-chave para especificar o caminho até um arquivo de certificado para corresponder ao certificado TLS/SSL do SQL Server. A verificação de correspondência é feita em vez da validação padrão de certificado (expiração, nome do host, cadeia de confiança etc.). Os formatos de certificado aceitos são PEM, DER e CER. Se você especificar essa opção, o certificado do SQL Server é verificado para ver se o ServerCertificate fornecido é uma correspondência exata.

SQL_COPT_SS_ACCESS_TOKEN

Use um token de acesso Microsoft Entra para autenticação. Para obter mais informações, consulte Usar o Microsoft Entra ID com o driver ODBC.

Valor do atributo Descrição
NULL (predefinição) Nenhum token de acesso é fornecido.
ACCESSTOKEN* Ponteiro para um token de acesso.

SQL_COPT_SS_CEKEYSTOREDATA

Comunica-se com uma biblioteca de provedor de repositório de chaves carregada. Controla a criptografia transparente de colunas (Always Encrypted). Esse atributo não tem valor padrão. Para obter mais informações, consulte Provedores de repositório de chaves personalizado.

Valor do atributo Descrição
CEKEYSTOREDATA * Estrutura de dados de comunicação para a biblioteca do provedor de repositório de chaves

SQL_COPT_SS_CEKEYSTOREPROVIDER

Carrega uma biblioteca de provedor de repositório de chaves para Always Encrypted ou recupera os nomes das bibliotecas de provedor de repositório de chaves carregadas. Para obter mais informações, consulte Provedores de repositório de chaves personalizado. Esse atributo não tem valor padrão.

Valor do atributo Descrição
char * Caminho para uma biblioteca do provedor de repositório de chaves

SQL_COPT_SS_ENLIST_IN_XA

Para habilitar transações XA com um processador de transações (TP) compatível com XA, a aplicação precisa chamar SQLSetConnectAttr com SQL_COPT_SS_ENLIST_IN_XA e um ponteiro para um objeto XACALLPARAM. Essa opção tem suporte no Windows (17.3+), no Linux e no macOS.

SQLSetConnectAttr(hdbc, SQL_COPT_SS_ENLIST_IN_XA, param, SQL_IS_POINTER);  // XACALLPARAM *param

Para associar uma transação XA apenas a uma conexão ODBC, forneça TRUE ou FALSE com SQL_COPT_SS_ENLIST_IN_XA no lugar do ponteiro ao chamar SQLSetConnectAttr. Essa configuração é válida somente no Windows e não pode ser usada para especificar operações XA por meio de um aplicativo cliente.

SQLSetConnectAttr(hdbc, SQL_COPT_SS_ENLIST_IN_XA, (SQLPOINTER)TRUE, 0);
Valor Descrição Plataformas
XACALLPARAM objeto* O ponteiro para o objeto XACALLPARAM. Windows, Linux e macOS
TRUE Associa a transação XA à conexão ODBC. Todas as atividades relacionadas de banco de dados são executadas sob a proteção da transação XA. Windows
FALSE Desassocia a transação da conexão ODBC. Windows

Para saber mais sobre transações XA, confira Usar transações XA.

SQL_COPT_SS_LONGASMAX

Envia tipos de dados longos para servidores como tipos de dados máximos.

Valor do atributo Descrição
No (predefinição) Não converta tipos longos para tipos máximos ao enviar.
Yes Converta dados de tipos longos para tipos máximos ao enviar.

SQL_COPT_SS_SPID

Recupera a ID da sessão da conexão. Essa propriedade equivale à variável T-SQL @@SPID, exceto pelo fato de que não incorre em uma viagem de ida e volta adicional ao servidor.

Valor do atributo Descrição
DWORD SPID