Herunterladen und Integrieren des JDBC-Treibers

Der JDBC-Treiber (snowflake-jdbc) wird als JAR-Datei bereitgestellt, die als Artefakt in Maven zum Herunterladen oder zur direkten Integration in Ihre Java-basierten Projekte zur Verfügung steht. Zusätzlich können Sie auch die folgenden Treibertypen von Maven herunterladen:

  • FIPS-kompatibles fat jar namens snowflake-jdbc-fips.

  • Thin jar namens snowflake-jdbc-thin.

Der Quellcode für die zusätzlichen Typen ist derselbe, aber die Konfigurationen ihrer Abhängigkeiten unterscheiden sich wie folgt:

  • Das FIPS-konforme Fat Jar bettet die FIPS Bouncy Castle-Abhängigkeiten nicht ein, sodass Sie diese während der Laufzeit bereitstellen müssen.

  • Das Thin-Jar enthält nur einige Abhängigkeiten, sodass Sie die anderen Abhängigkeiten gemäß der Deklaration in der pom-Datei bereitstellen müssen.

Alle JAR-Typen werden zusammen mit der gleichen Versionsnummer veröffentlicht.

Bevor Sie den Treiber herunterladen oder integrieren, sollten Sie zunächst die Version des Treibers überprüfen, den Sie gerade verwenden. Um Ihre Treiberversion zu überprüfen, verbinden Sie sich mit Snowflake über eine Clientanwendung, die den Treiber verwendet, und überprüfen Sie die Treiberversion. Wenn die Anwendung das Ausführen von SQL-Abfragen unterstützt, können Sie dies durch Aufruf der Funktion CURRENT_CLIENT tun.

Unter diesem Thema:

Anforderungen

Eine Liste der von Snowflake-Clients unterstützten Betriebssysteme finden Sie unter Betriebssystemunterstützung.

Herunterladen der gewünschten Art von Treiber

Um den Treiber herunterzuladen, folgen Sie den Schritten für den gewünschten Treiber-Typ.

Standardtreiber herunterladen

Zum Herunterladen des Standardtreibers:

  1. Rufen Sie das Maven Central Repository für den Standardtreiber auf.

  2. Wählen Sie das Verzeichnis für die Version, die Sie benötigen.

    Die neueste Version (3.22.0) steht nicht immer am Ende der Liste. Versionen werden alphabetisch und nicht numerisch aufgelistet. Beispielsweise steht 3.10.x nach 3.1.x und nicht nach 3.9.x.

  3. Laden Sie die entsprechende snowflake-jdbc-#.#.#.jar-Datei herunter:

    Bemerkung

    Sie können die Version des JDBC-Treibers überprüfen, indem Sie den folgenden Befehl eingeben:

    java -jar snowflake-jdbc-#.#.#.jar --version, wobei #.#.# mit den Versionsnummern im Namen der heruntergeladenen Datei übereinstimmt.

  4. Optional: Um die Signatur des Treiberpakets zu überprüfen, laden Sie die entsprechende Datei snowflake-jdbc-#.#.#.jar.asc herunter.

FIPS-kompatiblen Treiber herunterladen

So laden Sie den FIPS-kompatiblen Treiber herunter:

  1. Rufen Sie das Maven Central Repository für den FIPS-kompatiblen Treiber auf.

  2. Wählen Sie das Verzeichnis für die Version, die Sie benötigen.

    Die neueste Version (3.22.0) steht nicht immer am Ende der Liste. Versionen werden alphabetisch und nicht numerisch aufgelistet. Beispielsweise steht 3.10.x nach 3.1.x und nicht nach 3.9.x.

  3. Laden Sie die entsprechende snowflake-jdbc-fips-#.#.#.jar-Datei herunter:

    Bemerkung

    Sie können die Version des JDBC-Treibers überprüfen, indem Sie den folgenden Befehl eingeben:

    java -jar snowflake-jdbc-fips-#.#.#.jar --version, wobei #.#.# mit den Versionsnummern im Namen der heruntergeladenen Datei übereinstimmt.

  4. Optional können Sie die Signatur des Treiberpakets überprüfen und die entsprechende Datei snowflake-jdbc-fips-#.#.#.jar.asc herunterladen.

Thin-Jar-Treiber herunterladen

So laden Sie den Thin-Jar-Treiber herunter:

  1. Rufen Sie das Maven Central Repository für den thin-jar-Treiber auf.

  2. Wählen Sie das Verzeichnis für die Version, die Sie benötigen.

    Die neueste Version (3.22.0) steht nicht immer am Ende der Liste. Versionen werden alphabetisch und nicht numerisch aufgelistet. Beispielsweise steht 3.10.x nach 3.1.x und nicht nach 3.9.x.

  3. Laden Sie die entsprechende snowflake-jdbc-thin-#.#.#.jar-Datei herunter:

    Bemerkung

    Sie können die Version des JDBC-Treibers überprüfen, indem Sie den folgenden Befehl eingeben:

    java -jar snowflake-jdbc-thin-#.#.#.jar --version, wobei #.#.# mit den Versionsnummern im Namen der heruntergeladenen Datei übereinstimmt.

  4. Optional können Sie die Signatur des Treiberpakets überprüfen und die entsprechende Datei snowflake-jdbc-thin-#.#.#.jar.asc herunterladen.

Optional: Überprüfen Sie die Signatur des Treiberpakets

So überprüfen Sie die Signatur des JDBC-Treiberpakets:

  1. Laden Sie vom öffentlichen Keyserver den öffentlichen Snowflake-GPG-Schlüssel in der von Ihnen verwendeten JDBC-Treiberversion herunter, und importieren Sie diesen:

    • Für Version 3.22.0 und höher:

      $ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 2A3149C82551A34A
    • Für die Versionen 3.19.1 bis 3.21.0:

      $ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 5A125630709DD64B
    • Für die Versionen 3.13.23 bis 3.19.0:

      $ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 630D9F3CAB551AF3
    • Für die Versionen 3.12.13 bis 3.13.22:

      $ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 37C7086698CB005C
    • Für die Versionen 3.6.26 bis 3.12.12:

      $ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys EC218558EABB25A1
    • Für Version 3.6.25 und niedriger:

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

    Bemerkung

    Wenn dieser Befehl mit der folgenden Fehlermeldung fehlschlägt:

    gpg: keyserver receive failed: Server indicated a failure
    
    Copy

    Geben Sie an, dass Sie für den Keyserver Port 80 verwenden möchten:

    gpg --keyserver hkp://keyserver.ubuntu.com:80  ...
    
    Copy
  2. Führen Sie den Befehl gpg --verify aus, um die Signatur des Pakets zu überprüfen.

    Geben Sie für das Kommandozeilenflag --verify die .asc-Datei, die sie zuvor heruntergeladen haben, als Signaturdatei an, und die JAR-Datei als Datei mit den signierten Daten.

    Beispiel:

    $ 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>"

    Stellen Sie sicher, dass Sie die korrekten Versionsnummern für das JDBC-Treiberpaket angeben, das Sie verifizieren. Version 3.22.0 wird in diesem Beispiel nur zu Illustrationszwecken verwendet. Die neueste verfügbare Version des Treibers ist möglicherweise höher.

    Bemerkung

    Die Überprüfung der Signatur führt zu einer Warnung ähnlich der folgenden:

    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

    Um die Warnung zu vermeiden, können Sie dem öffentlichen Snowflake-GPG-Schlüssel implizites Vertrauen gewähren.

  3. Ihre lokale Umgebung kann mehrere GPG-Schlüssel enthalten. Aus Sicherheitsgründen rotiert Snowflake jedoch regelmäßig den öffentlichen GPG-Schlüssel. Als Best Practice empfehlen wir, den vorhandenen öffentlichen Schlüssel zu löschen, nachdem Sie sicher sind, dass der aktuelle Schlüssel mit dem aktuellen, signierten Paket funktioniert:

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

Treiber in ein Maven-Projekt integrieren

So integrieren Sie den Treiber in ein Maven-Projekt:

  • Fügen Sie den Treiber als Abhängigkeit zu Ihrer pom.xml Datei hinzu.

Beispiel:

  • Standardtreiber

    <dependencies>
      ...
      <dependency>
        <groupId>net.snowflake</groupId>
        <artifactId>snowflake-jdbc</artifactId>
        <version>3.22.0</version>
      </dependency>
      ...
    </dependencies>
  • FIPS-kompatibler Treiber

    <dependencies>
      ...
      <dependency>
        <groupId>net.snowflake</groupId>
        <artifactId>snowflake-jdbc-fips</artifactId>
        <version>3.22.0</version>
      </dependency>
      ...
    </dependencies>
  • Thin-Jar-Treiber

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

wobei das <Versions-Tag> die Version des Treibers angibt, den Sie integrieren möchten. Beachten Sie, dass Version 3.22.0 in diesem Beispiel nur zu Illustrationszwecken verwendet wird. Möglicherweise ist eine neuere Version des Treibers verfügbar.

Die Entwicklerhinweise werden mit dem Quellcode auf GitHub gehostet.

Fügen Sie die JNA-Klassen zu Ihrem Klassenpfad hinzu

Verbindungscaching für browserbasiertes SSO und Tokencaching für mehrstufige Authentifizierung (MFA) erfordern die Verwendung der Java Native Access (JNA)-Klassen, um Daten sicher im Dateisystem zu speichern.

Ab Version 3.12.18 des JDBC-Treibers sind die JNA-Klassen nicht mehr in der JAR-Datei des JDBC-Treibers gepackt. In der JDBC-Treiberdatei pom.xml sind die Abhängigkeiten von diesen Klassen als optional gekennzeichnet.

Wenn Sie Verbindungscaching oder Tokencaching verwenden müssen, müssen Sie die folgenden Bibliotheken zu Ihrem Klassenpfad hinzufügen:

Die pom.xml-Datei für den JDBC-Treiber gibt die Version der JNA-Klassen an, die mit dem JDBC-Treiber getestet wurden. Snowflake empfiehlt, diese Version (oder dieselbe Hauptversion) der JNA-Klassen zu verwenden.

Weitere Informationen dazu finden Sie auf der JDBC-Treiberseite im Maven Central Repository.

Bemerkung

Verwenden Sie bei Systemen mit aarch64-Architektur (z. B. den Apple M1-Chip) Version 5.7.0 oder höher der JNA-Bibliotheken. (JNA-Versionen vor v5.7.0 sind nicht kompatibel mit Windows- und macOS-Systemen, die auf der aarch64-Architektur ausgeführt werden.)