Herunterladen und Integrieren des JDBC-Treibers

Der JDBC -Treiber (snowflake-jdbc) wird als JAR-Datei bereitgestellt, die in Maven zum Herunterladen oder zur direkten Integration in Ihre Java-basierten Projekte verfügbar ist.

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 des Treibers

So laden Sie den Treiber herunter:

  1. Wechseln Sie in das Maven Central Repository:

    https://repo1.maven.org/maven2/net/snowflake/snowflake-jdbc

  2. Klicken Sie auf das Verzeichnis für die gewünschte Version.

    Die neueste Version (3.14.4) 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 snowflake-jdbc-#.#.#.jar-Datei herunter.

    Bemerkung

    Falls gewünscht, können Sie die JDBC-Treiberversion durch Eingabe des folgenden Befehls überprüfen:

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

  4. Wenn Sie vorhaben, die Signatur des Treiberpakets zu überprüfen, laden Sie die snowflake-jdbc-#.#.#.jar.asc-Datei herunter.

Überprüfen der Signatur des Treiberpakets – Optional

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.13.23 und höher:

      $ 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.14.4.jar.asc snowflake-jdbc-3.14.4.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.14.4 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

Integrieren des Treibers in ein Maven-Projekt

Um den Treiber in ein Maven-Projekt zu integrieren, fügen Sie den Treiber als Abhängigkeit zu Ihrer pom.xml-Datei hinzu. Beispiel:

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

Dabei gibt das <Version>-Tag die Version des zu integrierenden Treibers an. Beachten Sie, dass Version 3.14.4 in diesem Beispiel nur zu Illustrationszwecken verwendet wird. Die neueste verfügbare Version des Treibers ist möglicherweise höher.

Die Entwicklerhinweise werden mit dem Quellcode auf GitHub gehostet.

Hinzufügen der JNA-Klassen zu Ihrem Klassenpfad

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. (Weitere Informationen dazu finden Sie auf der Seite zum JDBC-Treiber im Maven Central Repository.) Wir empfehlen, diese Version (oder dieselbe Hauptversion) der JNA-Klassen zu verwenden.

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.)