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.
Nota
Você não pode definir o parâmetro SEARCH_PATH dentro de uma cadeia de caracteres de conexão do cliente ODBC. Você deve estabelecer uma sessão antes de definir um caminho de pesquisa.
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]
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>]
Windows de 32 bits:
[HKEY_CURRENT_USER\SOFTWARE\WOW6432NODE\ODBC\ODBC.INI\<DSN_NAME>] [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432NODE\ODBC\ODBC.INI\<DSN_NAME>]
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¶
CABundleFileDefina 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.
client_config_fileEspecifica o caminho de um arquivo de configuração do registro em log que você pode usar para definir o nível de registro em log e o diretório para salvar arquivos de log.
CURLVerboseModeDefina como
truepara habilitar o registro extenso cURL. O arquivo de logsnowflake_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.DisableOCSPCheckDefina como
truepara 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.DisableTelemetryEspecifica se a alternância do manipulador de telemetria em banda está habilitada ou não. Se esta configuração de driver estiver definida como
true, o manipulador de telemetria não será criado no driver.DriverManagerOverridePor padrão, o driver detecta automaticamente qual gerenciador de driver usar. Entretanto, se sua situação específica exigir isso, a partir do driver ODBC versão 3.9.0, você pode substituir esta detecção automática e especificar manualmente qual gerenciador de driver usar.
Os valores possíveis são: UnixODBC, iODBC, , e .
Se
DriverManagerOverridenão for especificado, o driver usará a detecção automática para o gerenciamento do driver (chamada backtrace()) para obter informações do gerenciador do driver. Este é o comportamento padrão.O parâmetro funciona somente em Linux e MacOS.
EnableAutoIpdByDefaultDefina como
falsepara configurar o driver ODBC para definir SQL_ATTR_ENABLE_AUTO_IPD comofalse(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.
EnablePidLogFileNamesDefina como
truepara 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.logsnowflake_odbc_generic7394_0.logsnowflake_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_thresholdEspecifica 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.
KeepLeadingTrailingZerosDetermina 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 comofalsepara remover zeros à esquerda ou à direita; por exemplo:0.23é alterado para.237.00é alterado para7
LogFileCountDefine 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.
LogFileSizeEspecifica 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.
LogLevelEspecifica 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
LogPathEspecifica a localização dos arquivos de log do Snowflake para clientes que utilizam o driver ODBC.
MapToLongVarcharEspecifica o comprimento de uma cadeia de caracteres na qual se começa a mapear valores de cadeia para um tipo de dados ODBC
SQL_LONGVARCHARem vez dos tipos de dados ODBC padrãoSQL_CHARouSQL_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.
NoExecuteInSQLPrepareDefina como
truepara configurar o driver ODBC para usar o comportamento ODBC padrão ao passar instruções DDL (tais como CREATE e DROP) paraSQLPrepare()eSQLExecute().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 paraSQLExecute(), o driver ODBC não envia a instrução para a fonte de dados.Se você definir
NoExecuteInSQLPreparecomotrue, o driver ODBC segue o comportamento padrão do ODBC. ChamarSQLPrepare()envia a instrução para a fonte de dados para preparação (não para execução). ChamarSQLExecute()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.
NoProxyEspecifica os padrões de nome de host para ignorar o servidor proxy (por exemplo,
.amazonaws.compara ignorar o acesso Amazon S3).Nota
O driver ODBC do Snowflake passa o valor
NoProxypara a opção do curlCURLOPT_NOPROXY.O formato do valor
NoProxypode ser encontrado aqui CURLOPT_NOPROXY explained».ProxyEspecifica um servidor proxy sob a forma de
<host>:<porta>para clientes que utilizam o driver ODBC.Nota
No Windows, as entradas para
LogLeveleLogPathsão criadas e preenchidas com valores padrão quando o driver ODBC está instalado; entretanto, uma entrada paraProxynã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.
SSLVersionEspecifica a versão mínima do SSL/TLS do a ser usada ao iniciar o handshake do TLS. Os valores correspondem às capacidades de libcurl. Para obter mais informações, consulte as entradas
CURL_SSLVERSION_*em CURLOPT_SSLVERSION explicado.Possíveis valores: um dentre TLSv1, SSLv2, SSLv3, TLSv1_0, TLSv1_1, TLSv1_2, TLSv1_3 (padrão: TLSv1_2).
A Snowflake recomenda deixar essa configuração como padrão quando você não tiver uma necessidade muito específica de alterá-la.
SSLVersionMaxEspecifica a versão máxima do SSL/TLS a ser usada ao iniciar o handshake do TLS. Os valores correspondem às capacidades de libcurl. Para obter mais informações, consulte as entradas
CURL_SSLVERSION_MAX_*em CURLOPT_SSLVERSION explicado.Possíveis valores: um dentre TLSv1_0, TLSv1_1, TLSv1_2, TLSv1_3 (padrão: TLSv1_3).
A Snowflake recomenda deixar essa configuração como padrão quando você não tiver uma necessidade muito específica de alterá-la.
Parâmetros de conexão¶
Importante
A partir da versão 8.24 do Snowflake, os administradores de rede têm a opção de exigir autenticação multifator (MFA) para todas as conexões com o Snowflake. Se seu administrador decidir habilitar esse recurso, você deverá configurar seu cliente ou driver para usar MFA ao se conectar ao Snowflake. Para obter mais informações, consulte os seguintes recursos:
Artigo da base de conhecimento sobre solução de problemas de autenticação de usuários de serviço com MFA Snowflake
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
Portde443.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.comPara determinar o identificador de conta a ser usado, consulte Configuração de um cliente, driver, biblioteca ou aplicativo de terceiros para se conectar ao Snowflake.
uid(Usuário)Especifica o nome de login do usuário do Snowflake a autenticar.
Parâmetros de conexão opcionais¶
BROWSER_RESPONSE_TIMEOUTEspecifica 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=<Booliano>Especifica se a telemetria fora de banda deve ser ativada.
O padrão é
true
CLIENT_SESSION_KEEP_ALIVE=<Booliano>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 forfalse, 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.
disableSamlUrlCheckEspecifica se a verificação deve ser desabilitada para SAML URLs. Por padrão, o driver verifica SAML URLs.
O padrão é
false.
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. A configuração do
maxHttpRetries=0remove o limite de novas tentativas, mas com isso há o risco de o driver repetir infinitamente chamadas de HTTP com falha.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.
allowEmptyProxyEspecifica 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.applicationSomente 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.authenticatorEspecifica o autenticador a ser usado para verificar as credenciais de login do usuário:
snowflake(Padrão) para usar o autenticador interno do Snowflake.externalbrowserpara 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
externalbrowserusando o Microsoft Excel com MacOS.https://<okta_account_name>.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).oauthpara autenticar usando OAuth. Quando OAuth é especificado como o autenticador, você também deve definir o parâmetrotokenpara especificar o token OAuth (consulte abaixo).username_password_mfapara autenticar com o armazenamento em cache de tokens MFA. Para obter mais detalhes, consulte Uso da autenticação multifator (neste tópico).oauth_authorization_codeAutentique-se manualmente usando um código de autorização OAuth com seu navegador da Web e um provedor de identidade escolhido (incluindo o Snowflake como IdP). Para obter mais informações, consulte Usar o fluxo do código de autorização OAuth 2.0.oauth_client_credentialsAutentique-se automaticamente usando as credenciais de cliente OAuth com o provedor de identidade escolhido (o Snowflake como IdP não é compatível com o fluxo de credenciais de cliente). Para obter mais informações, consulte Usar o fluxo de credenciais de cliente OAuth 2.0.programmatic_access_tokenpara se autenticar com um token de acesso programático (PAT).workload_identitypara autenticar com o autenticador de federação de identidade de carga de trabalho (WIF).
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_sizeEspecifica 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
67108864(para colunas BINARY) e134217728(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_sizeedefault_varchar_sizepara o tamanho máximo dos valores nestes tipos de colunas.Nota
A definição destes valores muda apenas o campo
SQL_DESC_LENGTHno Descritor de linha de implementação (IRD) e os valores correspondentes retornados deSQLDescribeCol/SQLColAttribute/SQLColAttributes. O driver ainda retorna todos os dados mesmo quando o seu comprimento excede a configuração.No entanto, um aplicativo pode alocar um buffer de dados com base no comprimento especificado nestes parâmetros que poderia truncar os dados devido a 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 134217728/67108864 bytes e para minimizar a chance de truncamento de dados.
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
Você pode especificar esses parâmetros como parâmetros de configuração da conexão (por exemplo, no
simba.snowflake.iniem 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_thresholdEspecifica 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_timeoutEspecifica 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 é 300 (segundos).
network_timeoutEspecifica 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).
retryTimeoutEspecifica quanto tempo, em segundos, esperar antes de retornar um erro para novas tentativas de HTTP de consultas com solicitações HTTP com falha. Zero (0) indica que nenhum tempo limite de nova tentativa está definido.
O padrão é 300 (segundos).
no_proxyEspecifica quais terminações de nome de host devem poder ignorar o servidor proxy (por exemplo,
no_proxy=.amazonaws.comsignifica 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,.example.com,myorganization-myaccount.snowflakecomputing.com,192.168.1.15,192.168.1.16
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_columnsizeEste parâmetro booliano 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.passcodeEspecifica a senha a ser usada para autenticação multifator.
Para obter mais informações sobre autenticação multifator, consulte Autenticação multifator (MFA).
passcodeInPasswordEspecifica se o código da autenticação multifator está anexado à senha:
on(outrue) especifica que o código está anexado.off(oufalse) ou qualquer outro valor especifica que o código não está anexado.
O valor padrão é
off.
proxyEspecifica a URL do servidor proxy no formato
http://<hostname>:<port>/ou<hostname>:<port_number>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_compresslvEspecifica 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_compresslvo driver ODBC usará o nível de compressão padrão.Os valores válidos são
-1a9. O valor padrão é-1e especifica o padrãoZ_DEFAULT_COMPRESSION.Os valores
0até9especificam uma taxa de compressão personalizada.0faz com que o driver ODBC utilize uma taxa de compressão menor, e9usa 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.iniem 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_fastfailSe 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.iniem 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_maxretriesEspecifica 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 é
0a100. Se você especificar um valor fora deste intervalo, o driver usa o valor padrão de5.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.iniem 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_tempdirEspecifica 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, ondeusernameé 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.iniem 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.
token=<string>Especifica o token para autenticação OAuth ou PAT, em que
<string>é o token. Esse parâmetro é necessário somente quando o parâmetroauthenticator=oauthouauthenticator=programmatic_access_tokenestiver definido.O padrão é nenhum.
query_timeoutEspecifica 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).
validateSessionParamEspecifica como responder quando qualquer um dos seguintes parâmetros de conexão de sessão é inválido:
enable_connection_diagEspecifica se o conector gera um relatório de diagnóstico de conectividade.
O padrão é
false.connection_diag_log_pathEspecifica o caminho absoluto onde o relatório de conectividade está armazenado.
Válido somente quando
enable_connection_diagétrue.Exemplo:
connection_diag_log_path=C:\\reportsconnection_diag_allowlist_pathEspecifica o caminho absoluto para um arquivo JSON que contém a saída de
SYSTEM$ALLOWLIST()ouSYSTEM$ALLOWLIST_PRIVATELINK().Válido somente quando
enable_connection_diagétrue.Exemplo:
connection_diag_log_path=C:\\allowlist.jsonOAUTH_CLIENT_IDValor do
client idfornecido pelo provedor de identidade para integração do Snowflake (metadados de integração de segurança do Snowflake).Padrão:
LOCAL_APPLICATION.OAUTH_CLIENT_SECRETValor de
client secretfornecido pelo provedor de identidade para integração do Snowflake (metadados de integração de segurança do Snowflake)Padrão:
LOCAL_APPLICATION.OAUTH_AUTHORIZATION_URLPonto de extremidade do provedor de identidade que fornece o código de autorização ao driver. Quando o Snowflake é usado como um provedor de identidade, esse valor é derivado dos parâmetros
serverouaccount.OAUTH_TOKEN_REQUEST_URLPonto de extremidade do provedor de identidade que fornece os tokens de acesso ao driver. Ao usar o Snowflake como um provedor de identidade, esse valor é derivado dos parâmetros
serverouaccount.OAUTH_SCOPEEscopo solicitado na solicitação de autorização do provedor de identidade. Por padrão, ele é derivado da função. Quando vários escopos são necessários, o valor deve ser uma lista separada por espaços de vários escopos.
OAUTH_REDIRECT_URIURI a ser usado para redirecionamento do código de autorização (metadados de integração de segurança do Snowflake). Padrão:
http://127.0.0.1:{randomAvailablePort}.WORKLOAD_IDENTITY_PROVIDERPlataforma do provedor de identidade de carga de trabalho. Os valores possíveis incluem:
AWS,AZURE,GCPeOIDC.- codenowrap:
PRIV_KEY_BASE64 Chave privada codificada em base64.
PRIV_KEY_PWDSenha de chave privada codificada em base64.
Conexão usando o arquivo connections.toml¶
O driver ODBC permite que você adicione definições de conexão a um arquivo de configuração connections.toml. Uma definição de conexão refere-se a uma coleção de parâmetros relacionados à conexão. O driver atualmente oferece suporte à versão 1.0.0 do formato TOML.
Para obter mais informações sobre formatos de arquivo toml, consulte TOML (Tom’s Obvious Minimal Language).
O prefixo da cadeia de caracteres de conexão: odbc:snowflake:auto informa ao driver para procurar a configuração de conexão dentro dos arquivos predefinidos (padrão). O driver ODBC procura o arquivo connections.toml nos seguintes locais, em ordem:
Se existir um diretório
~/.snowflakeem sua máquina, o ODBC usará o arquivo~/.snowflake/connections.toml.Local especificado na variável de ambiente
SNOWFLAKE_HOME.Caso contrário, o ODBC usará o arquivo
connections.tomlem um dos seguintes locais, com base em seu sistema operacional:Linux:
~/.config/snowflake/connections.toml, mas é possível atualizá-lo com variáveis XDGWindows:
%USERPROFILE%\AppData\Local\snowflake\connections.tomlMac:
~/Library/Application Support/snowflake/connections.toml
É possível gerar as configurações básicas para o arquivo de configuração Snowsight em Snowsight. Para obter mais informações, consulte Configuração de um cliente, driver, biblioteca ou aplicativo de terceiros para se conectar ao Snowflake.
Se quiser alternar entre várias conexões existentes, é possível configurá-las no arquivo connections.toml. A chave padrão é default, mas você altera o nome da conexão padrão configurando a variável de ambiente do shell SNOWFLAKE_DEFAULT_CONNECTION_NAME.
Os arquivos de amostra connections.toml a seguir definem duas conexões:
[default]
account = 'my_organization-my_account'
user = 'test_user'
password = '******'
warehouse = 'testw'
database = 'test_db'
schema = 'test_odbc'
protocol = 'https'
port = '443'
[aws-oauth-file]
account = 'my_organization-my_account'
user = 'test_user'
password = '******'
warehouse = 'testw'
database = 'test_db'
schema = 'test_odbc'
protocol = 'https'
port = '443'
authenticator = 'oauth'
token_file_path = '/Users/test/.snowflake/token'
Especificação de parâmetros em uma cadeia de caracteres de conexão¶
Você pode especificar os parâmetros de conexão como pares nome-valor em uma cadeia de caracteres de conexão, usando um sinal de igual (=) entre cada parâmetro e valor e usando um ponto e vírgula (;) entre os parâmetros. Por exemplo:
driver={SnowflakeDSIIDriver};server=myorganization-myaccount.snowflakecomputing.com;uid=myloginname;pwd=mypassword;database=mydatabase;schema=myschema;warehouse=mywarehouse;role=myrole;...
Você pode gerar a cadeia de caracteres de conexão básica na Snowsight. Para obter mais informações, consulte Configuração de um cliente, driver, biblioteca ou aplicativo de terceiros para se conectar ao Snowflake.
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) |
||
2.13.17 ou inferior |
||
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) |
||
2.13.21 ou anterior |
||
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) |
||
2.14.0 ou anterior |
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:
proxyno_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
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:
ProxyNoProxy
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_proxyhttps_proxyno_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.example.com:80 export https_proxy=http://proxyserver.example.com:80
Se o servidor proxy exigir um nome de usuário e senha, inclua as credenciais, por exemplo:
export https_proxy=http://username:password@proxyserver.example.com:80
Windows:
set http_proxy=http://proxyserver.example.com:80 set https_proxy=http://proxyserver.example.com:80
Se o servidor proxy exigir um nome de usuário e senha, inclua as credenciais, por exemplo:
set https_proxy=http://username:password@proxyserver.example.com:80
Opcional: para ignorar o proxy para comunicações específicas, defina no_proxy (por exemplo, para ignorar o acesso ao Amazon S3, use no_proxy=.amazonaws.com).
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.
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.
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_JWTEspecifica autenticar a conexão Snowflake usando a autenticação de par de chaves com JSON Web Token (JWT).
JWT_TIME_OUT = integerOpcional. 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:30PRIV_KEY_FILE = path/rsa_key.p8Especifica 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.
Salve as configurações.
Usar o fluxo de credenciais de cliente OAuth 2.0¶
O fluxo de credenciais de cliente do OAuth 2.0 oferece uma maneira segura de autenticação máquina para máquina (M2M), como o Snowflake Connector para Python que se conecta a um serviço de back-end. Ao contrário do fluxo do código de autorização OAuth 2.0, esse método não depende de nenhum dado específico do usuário.
Para ativar o fluxo de credenciais de cliente OAuth 2.0:
Defina o parâmetro de conexão
authenticatorcomooauth_client_credentials.Defina os seguintes parâmetros de conexão OAuth:
OAUTH_CLIENT_ID: valor doclient idfornecido pelo provedor de identidade para integração do Snowflake (metadados de integração de segurança do Snowflake).OAUTH_CLIENT_SECRET: valor declient secretfornecido pelo provedor de identidade para integração do Snowflake (metadados de integração de segurança do Snowflake)OAUTH_TOKEN_REQUEST_URL: ponto de extremidade do provedor de identidade que fornece os tokens de acesso ao driver. Quando o Snowflake é usado como um provedor de identidade, esse valor é derivado dos parâmetrosserverouaccount.OAUTH_SCOPE: escopo solicitado na solicitação de autorização do provedor de identidade. Por padrão, ele é derivado da função. Quando vários escopos são necessários, o valor deve ser uma lista separada por espaços de vários escopos.
Autenticação com um token de acesso programático (PAT)¶
O Programmatic Access Token (PAT), ou token de acesso programático, é um método de autenticação específico do Snowflake. O recurso deve ser ativado para a conta antes de ser usado (consulte Pré-requisitos para obter mais informações). A autenticação com PAT não envolve nenhuma interação humana.
Autenticação com federação de identidade de carga de trabalho (WIF)¶
Federação de identidades de carga de trabalho fornece um método de autenticação serviço a serviço para o Snowflake. Esse método permite que aplicativos, serviços ou contêineres sejam autenticados com o Snowflake, aproveitando o sistema de identidade nativo de seu provedor de nuvem, como AWS IAM, Microsoft Entra IDou contas de serviço do Google Cloud. Esta abordagem elimina a necessidade de gerenciar credenciais de longa duração e simplifica a aquisição de credenciais em comparação com outros métodos, como OAuth externo. Os conectores Snowflake são projetados para obter automaticamente credenciais de curta duração do provedor de identidade da plataforma.
Para habilitar o autenticador da federação de identidade da carga de trabalho, faça o seguinte:
Defina o parâmetro de conexão
autenticadorcomoWORKLOAD_IDENTITY.Defina o parâmetro de conexão
workload_identity_providercomoAWS,AZURE,GCPouOIDC, com base na sua plataforma.Para OpenID Connect (OIDC), especifique o parâmetro de conexão
token.
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
Arquivo de configuração do registro em log¶
Alternativamente, você pode facilmente especificar o nível de log e o diretório no qual salvar os arquivos de log no arquivo de configuração sf_client_config.json.
Nota
Esse recurso de arquivo de registro oferece suporte apenas aos seguintes níveis de log:
DEBUG
ERROR
INFO
OFF
TRACE
WARNING
FATAL
Este arquivo de configuração usa JSON para definir os parâmetros de registro em log log_level e log_path, como segue:
{
"common": {
"log_level": "DEBUG",
"log_path": "/home/user/logs"
}
}
O driver procura a localização do arquivo de configuração na seguinte ordem:
client_config_filecontendo o caminho completo para o arquivo de configuração.Variável de ambiente
SF_CLIENT_CONFIG_FILEcontendo o caminho completo para o arquivo de configuração.Diretório de instalação do driver ODBC, onde o arquivo deve ser nomeado
sf_client_config.json.Diretório inicial do usuário, onde o arquivo deve ser nomeado
sf_client_config.json.
Nota
Os valores de
LogLeveleLogPathtêm precedência sobre os valores definidos no arquivosf_client_config.json.Se um arquivo de configuração especificado no parâmetro
client_config_filede conexão ou variável de ambienteSF_CLIENT_CONFIG_FILEnão puder ser encontrado ou lido, o driver emite uma mensagem de erro.
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/snowflakeou~/.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_ENABLEDcomofalse. 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.