Download/integração do driver JDBC

O driver JDBC (snowflake-jdbc) é fornecido como um arquivo JAR, disponível como um artefato no Maven para download ou para integração direta em seus projetos baseados em Java. Além disso, você também pode baixar os seguintes tipos de drivers do Maven:

  • Fat jar compatível com FIPS com o nome snowflake-jdbc-fips.

  • Thin jar com nome snowflake-jdbc-thin.

O código-fonte dos tipos adicionais é o mesmo, mas as configurações de suas dependências são diferentes, como segue:

  • O fat jar compatível com FIPS não incorpora as dependências do FIPS Bouncy Castle, portanto, você precisa fornecê-las durante o tempo de execução.

  • O thin jar incorpora apenas algumas dependências, portanto, você precisa fornecer as outras dependências de acordo com a declaração do arquivo pom.

Todos os tipos de JAR são lançados juntos com o mesmo número de versão.

Antes de fazer o download ou integrar o driver, você deve verificar a versão do driver que está usando no momento. Para verificar sua versão do driver, conecte-se ao Snowflake através de um aplicativo cliente que usa o driver e verifique a versão. Se o aplicativo oferecer suporte à execução de consultas SQL, você pode fazer isto chamando a função CURRENT_CLIENT.

Neste tópico:

Requisitos

Para obter uma lista dos sistemas operacionais compatíveis com os clientes Snowflake, consulte Suporte ao sistema operacional.

Como baixar o tipo de driver desejado

Para fazer o download do driver, siga as etapas para o tipo de driver desejado.

Download de um driver padrão

Para fazer o download do driver padrão:

  1. Acesse o Maven Central Repository para obter o driver padrão.

  2. Selecione o diretório da versão que você precisa.

    A versão mais recente (3.22.0) nem sempre está no final da lista. As versões são listadas em ordem alfabética, não numérica. Por exemplo, o 3.10.x vem depois do 3.1.x, não depois do 3.9.x.

  3. Faça o download do arquivo snowflake-jdbc-#.#.#.#.jar apropriado:

    Nota

    Você pode verificar a versão do driver JDBC digitando o seguinte comando:

    java -jar snowflake-jdbc-#.#.#.jar --version onde #.#.# corresponde aos números da versão no nome do arquivo baixado.

  4. Opcional: para verificar a assinatura do pacote do driver, faça o download do arquivo correspondente snowflake-jdbc-#.#.#.#.jar.asc.

Download de um driver compatível com o FIPS

Para fazer o download do driver compatível com o FIPS:

  1. Acesse o Maven Central Repository para obter o driver compatível com FIPS.

  2. Selecione o diretório da versão que você precisa.

    A versão mais recente (3.22.0) nem sempre está no final da lista. As versões são listadas em ordem alfabética, não numérica. Por exemplo, o 3.10.x vem depois do 3.1.x, não depois do 3.9.x.

  3. Faça o download do arquivo snowflake-jdbc-fips-#.#.#.#.jar apropriado:

    Nota

    Você pode verificar a versão do driver JDBC digitando o seguinte comando:

    java -jar snowflake-jdbc-fips-#.#.#.jar --version onde #.#.# corresponde aos números da versão no nome do arquivo baixado.

  4. Opcionalmente, você pode verificar a assinatura do pacote do driver, fazer o download do arquivo correspondente snowflake-jdbc-fips-#.#.#.#.jar.asc.

Como baixar um driver thin-jar

Para fazer o download do driver thin-jar:

  1. Acesse o Maven Central Repository para o driver thin-jar.

  2. Selecione o diretório da versão que você precisa.

    A versão mais recente (3.22.0) nem sempre está no final da lista. As versões são listadas em ordem alfabética, não numérica. Por exemplo, o 3.10.x vem depois do 3.1.x, não depois do 3.9.x.

  3. Faça o download do arquivo snowflake-jdbc-thin-#.#.#.#.jar apropriado:

    Nota

    Você pode verificar a versão do driver JDBC digitando o seguinte comando:

    java -jar snowflake-jdbc-thin-#.#.#.jar --version onde #.#.# corresponde aos números da versão no nome do arquivo baixado.

  4. Opcionalmente, você pode verificar a assinatura do pacote do driver, fazer o download do arquivo correspondente snowflake-jdbc-thin-#.#.#.#.jar.asc.

Opcional: verificar a assinatura do pacote de driver

Para verificar a assinatura do pacote de driver JDBC:

  1. A partir do servidor de chaves públicas, baixe e importe a chave pública do Snowflake GPG para a versão do JDBC que você está usando:

    • Para a versão 3.22.0 e superior:

      $ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 2A3149C82551A34A
    • Para a versão 3.19.1 a 3.21.0:

      $ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 5A125630709DD64B
    • Para a versão 3.13.23 a 3.19.0:

      $ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 630D9F3CAB551AF3
    • Para a versão 3.12.13 a 3.13.22:

      $ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 37C7086698CB005C
    • Para a versão 3.6.26 até 3.12.12:

      $ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys EC218558EABB25A1
    • Para a versão 3.6.25 e inferior:

      $ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 93DB296A69BE019A

    Nota

    Se esse comando falhar com o seguinte erro:

    gpg: keyserver receive failed: Server indicated a failure
    
    Copy

    depois especifique que você deseja usar a porta 80 para o servidor de chaves:

    gpg --keyserver hkp://keyserver.ubuntu.com:80  ...
    
    Copy
  2. Execute o comando gpg --verify para verificar a assinatura do pacote.

    Para o sinalizador de linha de comando --verify, especifique o arquivo .asc que você baixou anteriormente como o arquivo de assinatura e o arquivo JAR como o arquivo contendo os dados assinados.

    Por exemplo:

    $ gpg --verify snowflake-jdbc-3.22.0.jar.asc snowflake-jdbc-3.22.0.jar
    gpg: Signature made Wed 22 Feb 2017 04:31:58 PM UTC using RSA key ID <gpg_key_id>
    gpg: Good signature from "Snowflake Computing <snowflake_gpg@snowflake.net>"

    Especifique os números de versão corretos para o pacote de driver JDBC que você está verificando. A versão 3.22.0 é utilizada neste exemplo apenas para fins ilustrativos. A última versão disponível do driver pode ser mais alta.

    Nota

    A verificação da assinatura produz um aviso semelhante ao seguinte:

    gpg: Signature made Mon 24 Sep 2018 03:03:45 AM UTC using RSA key ID <gpg_key_id>
    gpg: Good signature from "Snowflake Computing <snowflake_gpg@snowflake.net>" unknown
    gpg: WARNING: This key is not certified with a trusted signature!
    gpg: There is no indication that the signature belongs to the owner.
    
    Copy

    Para evitar o aviso, você pode conceder confiança implícita à chave pública GPG do Snowflake.

  3. Seu ambiente local pode conter múltiplas chaves GPG. Entretanto, por razões de segurança, o Snowflake alterna periodicamente a chave pública GPG. Como melhor prática, recomendamos excluir a chave pública existente após confirmar que a última chave funciona com o último pacote assinado:

    $ gpg --delete-key "Snowflake Computing"
    
    Copy

Integração do driver a um projeto maven

Para integrar o driver a um projeto Maven:

  • Adicione o driver como uma dependência ao seu arquivo pom.xml.

Por exemplo:

  • Driver padrão

    <dependencies>
      ...
      <dependency>
        <groupId>net.snowflake</groupId>
        <artifactId>snowflake-jdbc</artifactId>
        <version>3.22.0</version>
      </dependency>
      ...
    </dependencies>
  • Driver compatível com FIPS

    <dependencies>
      ...
      <dependency>
        <groupId>net.snowflake</groupId>
        <artifactId>snowflake-jdbc-fips</artifactId>
        <version>3.22.0</version>
      </dependency>
      ...
    </dependencies>
  • Driver thin-jar

    <dependencies>
      ...
      <dependency>
        <groupId>net.snowflake</groupId>
        <artifactId>snowflake-jdbc-thin</artifactId>
        <version>3.22.0</version>
      </dependency>
      ...
    </dependencies>

onde a tag <versão> especifica a versão do driver que você deseja integrar. Observe que a versão 3.22.0 é usada neste exemplo apenas para fins ilustrativos. Uma versão posterior do driver pode estar disponível.

As notas do desenvolvedor são hospedadas junto com o código fonte em GitHub.

Adição das classes JNA ao seu classpath

O cache de conexão para SSO baseado em navegador e cache de token para autenticação multi-fator (MFA) requerem o uso das classes Java Native Access (JNA) para salvar os dados com segurança no sistema de arquivos.

A partir da versão 3.12.18 do driver JDBC, as classes JNA não estão mais empacotadas no arquivo JAR do driver JDBC. No arquivo pom.xml do driver JDBC, as dependências destas classes são marcadas como opcionais.

Se você precisar usar o cache de conexão ou o cache de token, deve adicionar as seguintes bibliotecas ao seu classpath:

O arquivo pom.xml para o driver JDBC especifica a versão das classes JNA que foram testadas com o driver JDBC. A Snowflake recomenda utilizar esta versão (ou a mesma versão principal) das classes JNA.

Para mais informações, consulte Página do driver JDBC no repositório central do Maven.

Nota

Para sistemas que usam a arquitetura aarch64 (por exemplo, o chip M1 da Apple), use a versão 5.7.0 ou posterior das bibliotecas JNA. (versões JNA anteriores à v5.7.0 não são compatíveis com sistemas Windows e macOS executados em aarch64).