Free Trial

Base de conhecimento

Como criar conexões DSN-less para bancos de dados

marcusblackhill
12 - Quasar
12 - Quasar
Created
*Este artigo é uma versão traduzida do artigo que você pode encontrar no link: How to format common ODBC DSN-less connection strings pelo autor @EricWe 

 

 

Como criar conexões DSN-less para bancos de dados

 

Muitas pessoas precisam criar conexões ODBC para acessar dados externos, mas muitas vezes é dificil de se ter certeza de como criar as strings de conexão, principalmente quando falamos de conexões DSN-less. Aqui você vai encontrar um guia de referência com alguns exemplos de strings comuns para conexões DSN-less. Se não encontrar a string de conexão que precisa neste artigo, busque a informação diretamente no site do fornecedor do banco de dados, na documentação do driver ou no website connectionstrings.org.

 

Strings de conexão DSN-les são muito úteis e práticas para auxiliar na transferência de workflows entre diferentes computadores, visto que o computador a receber o fluxo não precisará configurar uma conexão DSN via ODBC, bastará que o mesmo possua o driver utilizado na conexão instalado na máquina.

 

Pré-requisitos

 

  • Alteryx Designer (qualquer versão)
  • Alteryx Server (qualquer versão)
  • Driver ODBC para acesso a dados externos (ex.: SQL Server, Oracle, Cloudera, Hadoop, etc.)

Procedimento

 

Strings de conexão DSN-less geralmente incluem:
 

  1. Nome do driver
  2. Hostname/IP  com o número da porta de acesso
  3. Database name Nome do banco de dados (database)
  4. Dependendo da forma de autenticação, pode ser necessário o User ID e senha

Obs:

  1. As palavras "DRIVER" e "DSN" devem sempre estar maiúsculas.
  2. O Alteryx busca pelo nome do driver e então repassa o restante da operação para tal.
  3. Outros parâmetros informados na string devem ser adicionados de acordo com o que o driver espera receber, tanto em nomenclatura quanto em ordenação para a compreensão correta dos dados, viabilizando a conexão

 

Conexão DSN ODBC DSN padrão:

 

odbc:DSN=Nome_DSN;UID=Usuário;PWD=Senha;

 

Exemplo de conexão DSN-less

 

odbc:DRIVER={SQL Server Native Client 11.0};UID=Usuário;PWD=Senha;DATABASE=Nome_Banco_de_dados;SERVER=Host_Banco_de_dados

 

Conexão DSN-less marcada como confiável (trusted), com ID e senha sendo capturados na configuração do driver

 

odbc:DRIVER={SQL Server Native Client 11.0};DATABASE=Nome_Banco_de_dados;SERVER=Servidor;Trusted_Connection=yes

 

Strings de conexão ODBC para Hadoop e Cloudera

 

Existem plataformas separadas para Hadoop e Cloudera, bem como as duas combinadas na mesma plataforma. Essas plataformas utilizam os mesmos tipos de driver ODBC: Hive (data warehouse), Impala (processamento paralelo em massa) e Spark (processamento baseado em performance)

 

Para conexões DSN é simples. Tendo a DSN já criada e configurada na máquina, a string de conexão precisa de apenas um parâmetro:  DSN=DataSourceName

 

Já as conexões DSN-less para Cloudera e Hadoop precisam de mais informações. O driver, host e porta precisam estar presentes na conexão juntamente com o mecanismo de autenticação.

 

O mecanismo de autenticação para esses drivers tambêm são os mesmo (AuthMech)

0 = Sem autenticação

1 = Kerberos

2 = Usuário - o UID pode ser omitido se o login anônimo for habilitado

3 = Usuário e senha

 

Sem autenticação

 

odbc:DRIVER={Simba Hive ODBC Driver};Host=Nome_servidor;Port=Numero_da_porta;AuthMech=0;
odbc:DRIVER={Simba Impala ODBC Driver};Host=Nome_servidor;Port=Numero_da_porta;AuthMech=0;
odbc:DRIVER={Simba Spark ODBC Driver};Host=Nome_servidor;Port=Numero_da_porta;AuthMech=0;

 

Kerberos

 

odbc:DRIVER={Simba Hive ODBC Driver};Host=Nome_servidor;Port=Numero_da_porta;AuthMech=1;KrbRealm=Domínio_(Realm);KrbHostFQDN=Nome_do_dominio;KrbServiceName=Nome_do_serviço;
odbc:DRIVER={Simba Impala ODBC Driver};Host=Nome_servidor;Port=Numero_da_porta;AuthMech=1;KrbRealm=Domínio_(Realm);KrbHostFQDN=Nome_do_dominio;KrbServiceName=Nome_do_serviço;
odbc:DRIVER={Simba Spark ODBC Driver};Host=Nome_servidor;Port=Numero_da_porta;AuthMech=1;KrbRealm=Domínio_(Realm);KrbHostFQDN=Nome_do_dominio;KrbServiceName=Nome_do_serviço;

 

Nome de Usuário

 

odbc:DRIVER={Simba Hive ODBC Driver};Host=Servidor;Port=Numero_da_porta;AuthMech=2;UID=Nome_do_usuario;
odbc:DRIVER={Simba Impala ODBC Driver};Host=Servidor;Port=Numero_da_porta;AuthMech=2;UID=Nome_do_usuario;
odbc:DRIVER={Simba Spark ODBC Driver};Host=Servidor;Port=Numero_da_porta;AuthMech=2;UID=Nome_do_usuario;

 

Usuário e senha

 

odbc:DRIVER={Simba Hive ODBC Driver};Host=Servidor;Port=Numero_da_porta;AuthMech=3;UID=Nome_do_usuario;PWD=Senha;
odbc:DRIVER={Simba Impala ODBC Driver};Host=Servidor;Port=Numero_da_porta;AuthMech=3;UID=Nome_do_usuario;PWD=Senha;
odbc:DRIVER={Simba Spark ODBC Driver};Host=Servidor;Port=Numero_da_porta;AuthMech=3;UID=Nome_do_usuario;PWD=Senha;

 

Parâmetros opcionais podem ser necessários de se adicionar na string de conexão caso configurado para utilizar ServerType, SSL, e ThriftTransport.

 

Conexão ODBC para Oracle

 

Simba
odbc:DRIVER={Simba Oracle ODBC Driver};Host=Servidor;Port=Numero_da_porta;SVC=DBService;UID=Usuario;PWD=Senha;

Oracle driver
odbc:DRIVER={Oracle in OraDB12Home1};Dbq=Nome_Alias_no_TNS;UID=Usuario;PWD=senha

 

String de conexão OCI para Oracle (conhecido como EZCONNECT - sem necessidade do arquivo TNSnames.ora)

 

oci:usuario/senha@servidor:numero_da_porta/nome_do_serviço

 

Usando TNS Entry Syntax para conexão DSN-less

 

oci:usuario/senha@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=servidor)(PORT = 1521)))(CONNECT_DATA=(SERVICE_NAME=nome_do_serviço)))

 

Mesma TNS Entry para Oracle usando SSL/TLS


(Essa é uma boa alternativa caso precise utilizar o protocolo TCPS para conexão DSN-les
 

oci:usuarios/senha@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=servidor1.xyz)(PORT=9999))(ADDRESS=(PROTOCOL=TCPS)(HOST=servidor2.xyz)(PORT=9999))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=nome_do_serviço.xyz))(SECURITY=(MY_WALLET_DIRECTORY=C:\app\client\Admin\product\12.1.0\client_1\Network\Admin\Wallet)(SSL_VERSION=1.2)(SSL_CLIENT_AUTHENTICATION=FALSE)))

 

Outros links úteis

 

 

 

Rótulos