Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
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