Parâmetros de configuração e conexão do ODBC

O driver ODBC do Snowflake utiliza tanto parâmetros de configuração como de conexão. Os métodos para definir os parâmetros são diferentes, dependendo do ambiente no qual o driver está instalado.

Neste tópico:

Definição de parâmetros no Windows

No Windows:

  • Os parâmetros de configuração são definidos no registro do Windows usando regedit e o seguinte caminho de registro:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Snowflake\Driver]
    
    Copy
  • Os parâmetros de conexão são definidos em Nomes das Fontes de Dados (DSNs):

    • DSNs normalmente são criados e editados usando a ferramenta Windows Data Source Administration.

    • Se você desejar, as chaves de registro para DSNs podem ser editadas diretamente no registro do Windows usando regedit. O caminho do registro para as chaves é diferente dependendo se você está usando Windows de 64 bits ou 32 bits e se você está editando um DSN de usuário ou sistema:

      • Windows de 64 bits:

        [HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI\<DSN_NAME>]
        
        [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\<DSN_NAME>]
        
        Copy
      • Windows de 32 bits:

        [HKEY_CURRENT_USER\SOFTWARE\WOW6432NODE\ODBC\ODBC.INI\<DSN_NAME>]
        
        [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432NODE\ODBC\ODBC.INI\<DSN_NAME>]
        
        Copy

      Para adicionar um parâmetro de conexão usando regedit, adicione um novo String Value, clique duas vezes no valor criado e depois insira o parâmetro ODBC como o Value name e o valor do parâmetro como o Value data.

Definição de parâmetros em macOS ou Linux

No macOS ou Linux:

  • Os parâmetros de configuração são definidos no arquivo de configuração (simba.snowflake.ini).

  • Os parâmetros de conexão são definidos no arquivo de nome da fonte de dados (DSN) (odbc.ini).

Parâmetros de configuração

CABundleFile

Defina a localização do arquivo do pacote da Autoridade Certificadora (CA). Faça referência a um arquivo que inclua uma lista válida de certificados CA.

Para Linux, os instaladores RPM e DEB copiam automaticamente o arquivo e definem este parâmetro.

Para Mac, o instalador PKG copia o arquivo e define este parâmetro.

Para Windows, o instalador MSI copia o arquivo e define este parâmetro.

Uma instalação manual requer que você baixe o arquivo de https://curl.haxx.se/docs/caextract.html e defina a localização do arquivo.

CURLVerboseMode

Defina como true para habilitar o registro extenso cURL. O arquivo de log snowflake_odbc_curl.dmp é criado e atualizado. O driver ODBC do Snowflake usa cURL como a biblioteca HTTP e TLS. Este parâmetro é útil para o diagnóstico de problemas de rede.

DisableOCSPCheck

Defina como true para desabilitar a verificação do status de revogação de certificado TLS pelo Online Certificate Status Protocol (OCSP). Em circunstâncias normais, este sinalizador não deve ser definido. Mas se o problema de disponibilidade do OCSP persistir, o aplicativo poderá definir temporariamente este parâmetro a fim de solucionar problemas de conectividade e removê-lo quando o problema de disponibilidade do OCSP for resolvido.

EnableAutoIpdByDefault

Defina como false para configurar o driver ODBC para definir SQL_ATTR_ENABLE_AUTO_IPD como false (que é o valor normalmente usado no padrão ODBC).

Caso contrário, por padrão, o driver ODBC define SQL_ATTR_ENABLE_AUTO_IPD como true para compatibilidade com ferramentas de terceiros.

Este parâmetro foi introduzido na versão 2.22.0 do driver ODBC.

EnablePidLogFileNames

Defina como true para incluir a ID do processo no nome do arquivo de log. Por exemplo, se a ID do processo for 7394, os arquivos de log serão nomeados:

  • snowflake_odbc_connection_7394_0.log

  • snowflake_odbc_generic7394_0.log

  • snowflake_odbc_curl_7394.dmp

Você pode definir este parâmetro para evitar que processos diferentes substituam os mesmos arquivos de log. Cada processo gerará seu próprio conjunto de arquivos de log.

Por padrão, o valor deste parâmetro é false.

Este parâmetro foi introduzido na versão 2.22.2 do driver ODBC.

get_size_threshold

Especifica o tamanho mínimo de arquivo, em megabytes (MB), para dividir arquivos em partes menores ao baixar arquivos com o comando GET. Os arquivos com tamanhos menores que esse limite não utilizarão o download em várias partes.

O padrão é 5 (MB).

Nota

Você pode substituir esse valor para casos específicos definindo o parâmetro de conexão get_size_threshold correspondente.

KeepLeadingTrailingZeros

Determina como são tratados os zeros à esquerda ou direita em números formatados como valores de cadeia de caracteres. Por padrão, o parâmetro é definido como true, o que significa que o driver retém quaisquer zeros iniciais ou finais. Defina o parâmetro como false para remover zeros à esquerda ou à direita; por exemplo:

  • 0.23 é alterado para .23

  • 7.00 é alterado para 7

LogFileCount

Define o número máximo de arquivos de log a serem mantidos antes de alternar arquivos mais antigos para dar lugar a novos arquivos de log.

LogFileSize

Especifica o tamanho máximo, em bytes, de um arquivo de log. Quando um arquivo de log atinge o tamanho especificado, o driver ODBC cria automaticamente um novo arquivo de log.

O padrão é 20971520.

LogLevel

Especifica o nível de detalhe registrado para clientes que utilizam o driver ODBC:

  • 0 = Desligado

  • 1 = Fatal

  • 2 = Erro

  • 3 = Aviso

  • 4 = Informativo

  • 5 = Depurar

  • 6 = Rastrear

LogPath

Especifica a localização dos arquivos de log do Snowflake para clientes que utilizam o driver ODBC.

MapToLongVarchar

Especifica o comprimento de uma cadeia de caracteres na qual se começa a mapear valores de cadeia para um tipo de dados ODBC SQL_LONGVARCHAR em vez dos tipos de dados ODBC padrão SQL_CHAR ou SQL_VARCHAR.

  • < 0 (ou removido): mapeia valores de cadeia de caracteres em seus tipos de dados ODBC padrão. Padrão = -1.

  • >= 0: especifica o número máximo de caracteres de cadeia a serem mapeados para os tipos de dados de cadeia de caracteres ODBC padrão. Todas as cadeias de caracteres maiores que este valor são mapeadas para SQL_LONGVARCHAR.

Você também pode especificar este parâmetro como um parâmetro de conexão. (Consulte as instruções para definir os parâmetros no Windows, macOS e Linux). Se definir ambos como um parâmetro de conexão e um parâmetro de configuração, o parâmetro de conexão no DSN (ou cadeia de conexão) tem precedência.

Este parâmetro foi introduzido na versão 2.24.3 do driver ODBC.

NoExecuteInSQLPrepare

Defina como true para configurar o driver ODBC para usar o comportamento ODBC padrão ao passar instruções DDL (tais como CREATE e DROP) para SQLPrepare() e SQLExecute().

No Snowflake, por padrão, quando você passa uma instrução DDL para SQLPrepare(), o driver ODBC envia a instrução para a fonte de dados para execução (não preparação). Quando você passa uma instrução DDL para SQLExecute(), o driver ODBC não envia a instrução para a fonte de dados.

Se você definir NoExecuteInSQLPrepare como true, o driver ODBC segue o comportamento padrão do ODBC. Chamar SQLPrepare() envia a instrução para a fonte de dados para preparação (não para execução). Chamar SQLExecute() envia a instrução para a fonte de dados para execução.

Este parâmetro foi introduzido na versão 2.21.6 do driver ODBC.

NoProxy

Especifica os padrões de nome de host para ignorar o servidor proxy (por exemplo, .amazonaws.com para ignorar o acesso Amazon S3).

Nota

O driver ODBC do Snowflake passa o valor NoProxy para a opção do curl CURLOPT_NOPROXY. O formato do valor NoProxy pode ser encontrado aqui.

Proxy

Especifica um servidor proxy sob a forma de <host>:<porta> para clientes que utilizam o driver ODBC.

Nota

No Windows, as entradas para LogLevel e LogPath são criadas e preenchidas com valores padrão quando o driver ODBC está instalado; entretanto, uma entrada para Proxy não é criada durante a instalação. Para especificar um proxy a ser usado com o driver, você deve adicionar manualmente a entrada à chave de registro do driver.

Para contornar o proxy para um ou mais endereços IP ou URLs, adicione o parâmetro NoProxy.

Parâmetros de conexão

Parâmetros de conexão requeridos

<nome> (Fonte de dados)

Especifica o nome de seu DSN.

port (Porta)

Especifica a porta na qual o driver busca a comunicação do Snowflake.

Nota

Você não precisa alterar o valor padrão Port de 443.

pwd (Senha)

Uma senha é necessária para se conectar ao Snowflake; entretanto, por razões de segurança e autenticação, o Snowflake desencoraja fortemente o armazenamento de credenciais de senha diretamente dentro de qualquer definição DSN.

Normalmente, as credenciais são passadas ao driver de forma programática pelo aplicativo do cliente que está tentando se conectar ao Snowflake.

Nota

No Windows, o driver ODBC exibe um campo Password na ferramenta Data Source Administration; no entanto, o driver não armazena quaisquer valores inseridos no campo. Ao invés disso, o driver exige que as credenciais de login sejam fornecidas no momento da conexão.

server (Servidor)

Especifica o nome de host de sua conta no seguinte formato:

account_identifier.snowflakecomputing.com

Para obter mais informações sobre identificadores de conta, consulte Identificadores de conta.

uid (Usuário)

Especifica o nome de login do usuário do Snowflake a autenticar.

Parâmetros de conexão opcionais

BROWSER_RESPONSE_TIMEOUT

Especifica o número de segundos de espera por uma resposta de autenticação em um navegador externo.

O padrão é 120.

CLIENT_OUT_OF_BAND_TELEMETRY_ENABLED=<Booleano>

Especifica se a telemetria fora de banda deve ser ativada.

O padrão é true

CLIENT_SESSION_KEEP_ALIVE=<Booleano>

Especifica se a sessão atual deve ser mantida ativa após um período de inatividade, ou se deve-se forçar o usuário a fazer login novamente. Se o valor for true, o Snowflake mantém a sessão ativa indefinidamente, mesmo que não haja atividade do usuário. Se o valor for false, o usuário deve fazer o login novamente após quatro horas de inatividade.

O padrão é false.

database (Banco de dados)

Especifica o banco de dados padrão a ser utilizado para as sessões iniciadas pelo driver.

maxHttpRetries (Banco de dados)

Especifica o número máximo de novas tentativas de HTTP para consultas com solicitações de HTTP com falha antes de retornar um erro.

O valor padrão é 7.

role (Função)

Especifica a função padrão a ser usada nas sessões iniciadas pelo driver. A função especificada deve ter sido atribuída ao usuário especificado para o driver. Se a função especificada não corresponder a nenhuma das funções atribuídas ao usuário, as sessões iniciadas pelo driver não terão nenhuma função inicialmente; entretanto, uma função pode sempre ser especificada a partir da sessão.

schema (Esquema)

Especifica o esquema padrão a ser usado nas sessões iniciadas pelo driver.

O padrão é public.

SecondaryRoles (Função)

Especifica as funções secundárias a serem utilizadas nas sessões iniciadas pelo driver. As funções já devem ser atribuídas ao usuário especificado para o driver. As funções secundárias também podem ser ativadas de uma sessão do usuário usando o comando USE SECONDARY ROLES.

Os valores possíveis incluem:

  • Todas: Todas as funções concedidas ao usuário.

  • Nenhum: Nenhuma função permitida (desabilita funções secundárias).

tracing (Rastreamento)

O nível de detalhe a ser registrado nos arquivos de rastreamento do driver:

  • 0 = Desabilitar o rastreamento

  • 1 = Rastreamento apenas de erros fatais

  • 2 = Rastreamento de erros

  • 3 = Rastreamento de avisos

  • 4 = Rastreamento informativo

  • 5 = Rastreamento de depuração

  • 6 = Rastreamento detalhado

warehouse (Warehouse)

Especifica o warehouse padrão a ser utilizado para sessões iniciadas pelo driver.

Parâmetros adicionais de conexão

Nota

No Windows, estes parâmetros de conexão adicionais podem ser definidos no Registro do Windows (usando regedit).

No macOS ou Linux, eles são definidos no arquivo odbc.ini, semelhante ao resto dos parâmetros de conexão.

allowEmptyProxy

Especifica se serão permitidos valores vazios para os parâmetros de conexão proxy e sem_proxy, conforme descrito nas seções a seguir:

Definir esse valor produz os seguintes efeitos:

  • true: o driver trata valores de proxy vazios como configurações de proxy válidas e substitui quaisquer configurações ou variáveis de ambiente existentes.

  • false: o driver ignora valores de proxy vazios e usa os parâmetros de configuração ou a variável de ambiente especificada.

O padrão é true.

application

Somente para uso por parceiro do Snowflake: especifica o nome de um aplicativo do parceiro para conexão por ODBC.

Este parâmetro também pode ser definido chamando a função SQLSetConnectAttr(). Para obter mais detalhes, consulte Comportamento específico do Snowflake da função SQLSetConnectAttr.

authenticator

Especifica o autenticador a ser usado para verificar as credenciais de login do usuário:

  • snowflake (Padrão) para usar o autenticador interno do Snowflake.

  • externalbrowser para usar seu navegador para autenticar com Okta, AD FS ou qualquer outro provedor de identidade compatível com SAML 2.0 (IdP) que tenha sido definido para sua conta.

    Nota

    O driver Snowflake ODBC não oferece suporte à autenticação externalbrowser usando o Microsoft Excel com MacOS.

  • https://<nome_da_conta_okta>.okta.com (ou seja, o ponto de extremidade da URL para sua conta Okta) para autenticar através de Okta nativo (com suporte apenas se seu IdP for Okta).

  • oauth para autenticar usando OAuth. Quando OAuth é especificado como o autenticador, você também deve definir o parâmetro token para especificar o token OAuth (consulte abaixo).

  • username_password_mfa para autenticar com o armazenamento em cache de tokens MFA. Para obter mais detalhes, consulte Uso da autenticação multifator (neste tópico).

O padrão é snowflake.

No Windows, você pode usar a Ferramenta de administração da fonte de dados ODBC para definir este parâmetro.

Para obter mais informações sobre autenticação, consulte Gerenciamento/uso da autenticação federada e Clientes, drivers e conectores.

default_binary_size, . default_varchar_size

Especifica o tamanho padrão, em bytes, que o driver usa ao recuperar e converter valores das colunas BINARY ou VARCHAR de tamanhos indeterminados. Defina ao recuperar valores destes tipos de colunas.

Por padrão, o driver usa 8388608 (para colunas BINARY) e 16777216 (para colunas VARCHAR) como os tamanhos padrão ao alocar memória para recuperar o valor de uma coluna de tamanho indeterminado.

Para reduzir a quantidade de memória alocada para estes valores, você pode definir default_binary_size e default_varchar_size para o tamanho máximo dos valores nestes tipos de colunas.

Nota

A definição destes valores muda apenas o campo SQL_DESC_LENGTH no Descritor de linha de implementação (IRD) e os valores correspondentes retornados de SQLDescribeCol/SQLColAttribute/SQLColAttributes. O driver ainda retorna todos os dados mesmo quando o seu comprimento excede a configuração.

Por outro lado, um aplicativo pode alocar um buffer de dados com base no comprimento especificado nestes parâmetros que poderia truncar os dados devido ao espaço insuficiente no buffer. Como melhor prática, a Snowflake recomenda definir o tamanho padrão maior do que o tamanho máximo dos dados típicos (por exemplo, 4000 ou 8000 bytes) para reduzir significativamente o uso de memória dos valores padrão originais de 16777216/8388608 bytes e para minimizar a chance de truncamento de dados.

Observe que você também pode usar estas configurações para evitar o seguinte erro, que pode ocorrer ao usar o fornecedor Microsoft OLE DB (MSDASQL) com um banco de dados Snowflake:

Requested conversion is not supported
Cannot get the current row value of column
Copy

Você pode especificar esses parâmetros como parâmetros de configuração da conexão (por exemplo, no simba.snowflake.ini em macOS e Linux). Se for definido como um parâmetro de conexão e um parâmetro de configuração, o parâmetro de conexão no DSN (ou cadeia de conexão) tem precedência.

Estes parâmetros foram introduzidos na versão 2.23.2 do driver ODBC.

get_size_threshold

Especifica o tamanho mínimo de arquivo, em megabytes (MB), para dividir arquivos em partes menores ao baixar arquivos com o comando GET. Os arquivos com tamanhos menores que esse limite não utilizarão o download em várias partes.

O padrão é 5 (MB).

Nota

A definição desse valor como parâmetro de conexão substitui o valor do parâmetro de configuração get_size_threshold correspondente.

login_timeout

Especifica quanto tempo, em segundos, esperar por uma resposta ao conectar-se ao serviço Snowflake antes de retornar um erro de falha no login.

O padrão é 60 (segundos).

network_timeout

Especifica quanto tempo, em segundos, esperar por uma resposta ao interagir com o serviço Snowflake antes de retornar um erro. Zero (0) indica que não há tempo limite de rede definido.

O padrão é 0 (segundos).

no_proxy

Especifica quais terminações de nome de host devem poder ignorar o servidor proxy (por exemplo, no_proxy=.amazonaws.com significa que o acesso Amazon S3 não precisa passar pelo proxy).

Este parâmetro não tem suporte para curingas. Cada valor especificado deve ser um dos seguintes:

  • O fim de um nome de host (ou um nome de host completo), por exemplo:

    • .amazonaws.com

    • minhaorganização-minhaconta.snowflakecomputing.com

  • Um endereço IP, por exemplo:

    • 192.196.1.15

Se for especificado mais de um valor, os valores devem ser separados por vírgulas; por exemplo:

no_proxy=localhost,.my_company.com,myorganization-myaccount.snowflakecomputing.com,192.168.1.15,192.168.1.16
Copy

Nota

Este parâmetro é aplicado ao processo. Se outra conexão compartilhar o mesmo processo, a configuração do proxy deverá ser idêntica, ou o comportamento não será previsível.

odbc_use_standard_timestamp_columnsize

Este parâmetro booleano afeta o tamanho da coluna (em caracteres) retornada para SQL_TYPE_TIMESTAMP. Quando este parâmetro é definido como verdadeiro, o driver retorna 29, seguindo o padrão ODBC. Quando este parâmetro é definido como false, o driver retorna 35, o que permite espaço para a diferença de fuso horário (por exemplo, “-08:00”).

Este valor pode ser definido não apenas através do arquivo odbc.ini (Linux ou macOS) ou do registro do Microsoft Windows, mas também por meio da cadeia de conexão.

O padrão é false.

passcode

Especifica a senha a ser usada para autenticação multifator.

Para obter mais informações sobre autenticação multifator, consulte Autenticação multifator (MFA).

passcodeInPassword

Especifica se o código da autenticação multifator está anexado à senha:

  • on (ou true) especifica que o código está anexado.

  • off (ou false) ou qualquer outro valor especifica que o código não está anexado.

O valor padrão é off.

proxy

Especifica a URL do servidor proxy no formato http://<nome de host>:<porta>/ ou <nome de host>:<número_da_porta> para que todas as comunicações do ODBC utilizem o servidor proxy.

Nota

Este parâmetro é aplicado ao processo. Se outra conexão compartilhar o mesmo processo, a configuração do proxy deverá ser idêntica, ou o comportamento não será previsível.

put_compresslv

Especifica a taxa de compressão que o driver ODBC usa ao transferir dados com o comando PUT. Este parâmetro substitui o nível padrão de compressão gzip. Se você não especificar put_compresslv o driver ODBC usará o nível de compressão padrão.

Os valores válidos são -1 a 9. O valor padrão é -1 e especifica o padrão Z_DEFAULT_COMPRESSION.

Os valores 0 até 9 especificam uma taxa de compressão personalizada. 0 faz com que o driver ODBC utilize uma taxa de compressão menor, e 9 usa uma taxa de compressão maior. O uso de uma taxa de compressão mais alta resulta em velocidades de transferência de dados mais lentas.

Você também pode especificar este parâmetro como um parâmetro de configuração (por exemplo, no simba.snowflake.ini em macOS e Linux). Se for definido como um parâmetro de conexão e um parâmetro de configuração, o parâmetro de conexão no DSN (ou cadeia de conexão) tem precedência.

Este parâmetro foi introduzido na versão 2.23.3 do driver ODBC.

put_fastfail

Se você estiver usando caracteres curinga com o comando PUT para carregar vários arquivos ao mesmo tempo e quiser que o driver pare de carregar os arquivos quando ocorrer um erro, defina este parâmetro como true.

O valor padrão é false, o que significa que se ocorrer um erro com um arquivo, o driver continuará carregando o resto dos arquivos.

Este parâmetro foi introduzido na versão 2.22.3 do driver ODBC.

A partir da versão 2.22.5 do driver ODBC, você também pode especificar este parâmetro como um parâmetro de configuração (por exemplo, no simba.snowflake.ini em macOS e Linux). Se for definido como um parâmetro de conexão e um parâmetro de configuração, o parâmetro de conexão no DSN (ou cadeia de conexão) tem precedência.

put_maxretries

Especifica o número de vezes que o driver deve tentar novamente o comando PUT se o comando falhar.

O valor padrão é 5.

O intervalo de valores válido para este parâmetro é 0 a 100. Se você especificar um valor fora deste intervalo, o driver usa o valor padrão de 5.

Este parâmetro foi introduzido na versão 2.22.3 do driver ODBC.

A partir da versão 2.22.5 do driver ODBC, você também pode especificar este parâmetro como um parâmetro de configuração (por exemplo, no simba.snowflake.ini em macOS e Linux). Se for definido como um parâmetro de conexão e um parâmetro de configuração, o parâmetro de conexão no DSN (ou cadeia de conexão) tem precedência.

put_tempdir

Especifica o diretório temporário a ser utilizado para solicitações de comando PUT. O driver usa este diretório temporário para criar arquivos compactados temporários antes de carregar esses arquivos no Snowflake.

Se este parâmetro não for definido, o driver cria e usa o diretório temporário /tmp/snowflakeTmp_username, onde username é o nome do usuário atual no sistema operacional.

Você também pode especificar este parâmetro como um parâmetro de configuração (por exemplo, no simba.snowflake.ini em macOS e Linux). Se for definido como um parâmetro de conexão e um parâmetro de configuração, o parâmetro de conexão no DSN (ou cadeia de conexão) tem precedência.

Este parâmetro foi introduzido na versão 2.23.1 do driver ODBC.

query_timeout

Especifica o tempo de espera, em segundos, para que uma consulta seja concluída antes de retornar um erro. Zero (0) indica que se deve esperar indefinidamente.

O padrão é 0 (segundos).

token=<cadeia de caracteres>

Especifica o token OAuth a ser usado para autenticação, onde <string> é o token. Este parâmetro só é necessário quando o parâmetro authenticator=oauth é definido.

O padrão é nenhum.

validateSessionParam

Especifica como responder quando qualquer um dos seguintes parâmetros de conexão de sessão é inválido:

Os valores possíveis incluem:

  • false (padrão): Conecta com sucesso, mas define os valores dos parâmetros database e schema como cadeias de caracteres vazias e define o parâmetro warehouse como seu valor padrão. Para obter mais informações sobre warehouses, consulte Uso de warehouses em sessões.

  • true: Rejeita a conexão e gera um erro.

Verificação da conexão da rede ao Snowflake com SnowCD

Após configurar seu driver, você pode avaliar e solucionar problemas de conectividade de rede com o Snowflake usando o SnowCD.

Você pode usar o SnowCD durante o processo de configuração inicial e sob demanda a qualquer momento para avaliar e solucionar problemas de sua conexão de rede ao Snowflake.

Conexão por meio de um servidor proxy

As instruções para configurar uma conexão de servidor proxy dependem de seu sistema operacional e da versão do driver:

Sistema operacional

Versão do driver

Instruções com suporte

Linux

2.16.0 (lançamento em 3 de maio de 2018) ou superior

2.13.18 (lançamento em 7 de fevereiro de 2018) - 2.15.0 (lançamento em 30 de abril de 2018)

Uso de variáveis de ambiente

2.13.17 ou inferior

Uso de parâmetros de configuração

macOS

2.16.0 (lançamento em 3 de maio de 2018) ou superior

2.14.0 (lançamento em 28 de março de 2018) - 2.15.0 (lançamento em 30 de abril de 2018)

Uso de variáveis de ambiente

2.13.21 ou anterior

Uso de parâmetros de configuração

Windows

2.16.0 (lançamento em 3 de maio de 2018) ou superior

2.15.0 (lançamento em 30 de abril de 2018)

Uso de variáveis de ambiente

2.14.0 ou anterior

Uso de parâmetros de configuração

Nota

As últimas versões do driver ODBC, indicadas acima, suportam qualquer uma das opções de configuração listadas. As opções estão listadas na ordem de precedência. Se mais de uma opção for definida, será aplicada a configuração com a maior precedência.

Uso de parâmetros de conexão

Para conectar através de um servidor proxy, adicione os seguintes parâmetros de conexão ao DSN:

  • proxy

  • no_proxy

Por exemplo:

[connection]
Description = SnowflakeDB
Driver      = SnowflakeDSIIDriver
Locale      = en-US
server      = myorganization-myaccount.snowflakecomputing.com
proxy       = http://proxyserver.company:80
no_proxy    = .amazonaws.com
Copy

Consulte parâmetros de conexão para descrições de parâmetros.

Uso de parâmetros de configuração

Nota

Estes parâmetros estão obsoletos (ou seja, não têm mais suporte) nas versões recentes do driver ODBC. Consulte a tabela de opções com suporte em Conexão por meio de um servidor proxy. Ao atualizar seu driver, defina as configurações de servidor proxy usando as variáveis de ambiente ou os parâmetros de conexão.

Para conectar através de um servidor proxy, adicione os seguintes parâmetros de configuração:

  • Proxy

  • NoProxy

Consulte Parâmetros de configuração para descrições de parâmetros.

Uso de variáveis de ambiente

Para conectar-se através de um servidor proxy, configure as seguintes variáveis de ambiente:

  • http_proxy

  • https_proxy

  • no_proxy

Nota

Estas variáveis de ambiente diferenciam maiúsculas e minúsculas para Linux e macOS e devem ser definidas em minúsculas. Para Windows, as variáveis de ambiente não diferenciam maiúsculas e minúsculas.

Por exemplo:

  • Linux ou macOS:

    export http_proxy=http://proxyserver.company.com:80
    export https_proxy=http://proxyserver.company.com:80
    
    Copy

    Se o servidor proxy exigir um nome de usuário e senha, inclua as credenciais, por exemplo:

    export https_proxy=http://username:password@proxyserver.company.com:80
    
    Copy
  • Windows:

    set http_proxy=http://proxyserver.company.com:80
    set https_proxy=http://proxyserver.company.com:80
    
    Copy

    Se o servidor proxy exigir um nome de usuário e senha, inclua as credenciais, por exemplo:

    set https_proxy=http://username:password@proxyserver.company.com:80
    
    Copy

Opcionalmente, você pode definir no_proxy para ignorar o proxy em comunicações específicas (por exemplo, no_proxy=.amazonaws.com para ignorar o acesso Amazon S3).

Uso de login único (SSO) para autenticação

Se você tiver configurado o Snowflake para usar o login único (SSO), pode configurar seu aplicativo cliente para usar o SSO para autenticação. Consulte Uso de SSO com aplicativos clientes que se conectam ao Snowflake para obter mais detalhes.

Uso da autenticação multifator

O Snowflake permite armazenar tokens MFA em cache, incluindo combinar o cache de tokens MFA com SSO.

Para obter mais informações, consulte Uso do armazenamento em cache de tokens MFA para minimizar o número de tentativas durante a autenticação — opcional.

Uso de autenticação de pares de chaves

O driver ODBC suporta autenticação de par de chaves e rodízio de chaves.

  1. Para começar, complete a configuração inicial para autenticação de par de chaves como mostrado em Autenticação de pares de chaves e rotação de pares de chaves.

  2. Modifique as entradas do nome da fonte de dados (DSN) para o driver. Para obter mais informações sobre as entradas do DSN, consulte o tópico apropriado para seu sistema operacional:

    Adicione os seguintes parâmetros (diferenciam maiúsculas e minúsculas):

    AUTHENTICATOR = SNOWFLAKE_JWT

    Especifica autenticar a conexão Snowflake usando a autenticação de par de chaves com JSON Web Token (JWT).

    JWT_TIME_OUT = integer

    Opcional. Especifica o tempo que o Snowflake espera para receber o JWT (em segundos) antes de atingir o tempo limite. Se isso acontecer, a autenticação falha e o driver retorna um erro Invalid JWT token. Para resolver ocorrências repetidas do erro, aumente o valor do parâmetro. Padrão: 30

    PRIV_KEY_FILE = path/rsa_key.p8

    Especifica o caminho local para o arquivo de chave privada que você criou (ou seja, rsa_key.p8).

    O valor definido no DSN pode ser substituído chamando a função SQLSetConnectAttr(). Para obter mais detalhes, consulte Comportamento específico do Snowflake da função SQLSetConnectAttr.

    PRIV_KEY_FILE_PWD = <password>

    Especifica a senha para decodificar o arquivo de chave privada.

    Este parâmetro deve ser definido somente se o parâmetro PRIV_KEY_FILE também estiver definido.

    O valor definido no DSN pode ser substituído chamando a função SQLSetConnectAttr(). Para obter mais detalhes, consulte Comportamento específico do Snowflake da função SQLSetConnectAttr.

  3. Salve as configurações.

Gerenciamento de arquivos de log

Para ajudá-lo a rastrear os problemas que possam surgir, você pode habilitar o registro no driver ODBC. O driver ODBC fornece as seguintes opções de configuração que você pode usar para configurar o registro e gerenciar arquivos de log:

  • EnablePidLogFileNames: Acrescenta a IDdo processo ao nome de um arquivo de log.

  • LogFileCount: Define o número máximo de arquivos de log salvos.

  • LogFileSize: Especifica o tamanho máximo de um arquivo de log.

  • LogLevel: Especifica os tipos de informações a serem registradas.

  • LogPath: Define a localização para os arquivos de log.

Você pode usar estes parâmetros para gerenciar como nomear, armazenar e alternar os arquivos de log. Você pode especificar o tamanho e a quantidade de arquivos de log que deseja manter antes de substituí-los por arquivos de log recém-criados. O exemplo a seguir acrescenta a ID do processo aos nomes dos arquivos para garantir a exclusividade, define o tamanho máximo do arquivo como 30MB e mantém os 100 arquivos de log mais recentes.

EnablePidLogFileNames = true  # Appends the process ID to each log file
LogFileSize = 30,145,728      # Sets log files size to 30MB
LogFileCount = 100            # Saves the 100 most recent log files
Copy

Verificação da versão do driver ou conector OCSP

O Snowflake usa OCSP para avaliar a cadeia de certificados ao fazer uma conexão com o Snowflake. A versão do driver ou conector e sua configuração determinam o comportamento OCSP. Para obter mais informações sobre a versão do driver ou conector, sua configuração e comportamento OCSP, consulte Configuração do OCSP.

Servidor de cache de resposta OCSP

Nota

O servidor de cache de resposta OCSP tem suporte do driver ODBC do Snowflake 2.15.0 e superior.

Os clientes Snowflake iniciam cada conexão com um ponto de extremidade do servidor Snowflake com um “handshake” que estabelece uma conexão segura antes de realmente transferir dados. Como parte do handshake, um cliente autentica o certificado TLS do ponto de extremidade do servidor. O status de revogação do certificado é verificado enviando uma solicitação do certificado de cliente para um dos servidores OCSP (Online Certificate Status Protocol) para a CA (autoridade de certificação).

Uma falha na conexão ocorre quando a resposta do servidor OCSP é atrasada além de um tempo razoável. Os seguintes caches persistem no status de revogação, ajudando a aliviar esses problemas:

  • Cache de memória, que persiste por toda a vida do processo.

  • Cache de arquivos, que persiste até que o diretório de cache (por exemplo, ~/.cache/snowflake ou ~/.snowsql/ocsp_response_cache) seja purgado.

  • O servidor de cache de resposta OCSP do Snowflake, que busca respostas OCSP dos servidores OCSP da CA de hora em hora e as armazena por 24 horas. Os clientes podem então solicitar o status de validação de um determinado certificado do Snowflake a partir deste cache do servidor.

    Importante

    Se a política de seu servidor negar acesso à maioria ou a todos os sites e endereços IP externos, você precisará permitir que o endereço do servidor de cache permita a operação normal do serviço. O nome de host do servidor de cache é ocsp*.snowflakecomputing.com:80.

    Se você precisar desativar o servidor de cache por qualquer motivo, defina a variável de ambiente SF_OCSP_RESPONSE_CACHE_SERVER_ENABLED como false. Observe que o valor diferencia maiúsculas e minúsculas e precisa estar em minúsculas.

Se nenhuma das camadas de cache contiver a resposta do servidor OCSP, o cliente tenta obter o status de validação diretamente do servidor OCSP para a CA.