Clientzertifikatauthentifizierung für Loopbackszenarios

JDBC-Treiber herunterladen

In SQL Server 2016 wurde eine neue gespeicherte Prozedur mit dem Namen sp_execute_external_script (SPEES) hinzugefügt. Diese gespeicherte Prozedur ermöglicht es SQL Server, ein externes Skript außerhalb von SQL Server zu starten und auszuführen und so die Erweiterbarkeit zu verbessern. In diesem Zusammenhang wurde die Unterstützung für R- und Python-Skripts eingeführt. Beide bieten Bibliotheken, die es ermöglichen, unter Verwendung eines JDBC-Treibers eine Verbindung mit SQL Server herzustellen. Obwohl SQL Server-Instanzen unter Windows die integrierte Windows-Authentifizierung verwenden können, um diese Loopbackverbindungen mit denselben Anmeldeinformationen wie der Benutzer zu authentifizieren, der die Abfrage gestartet hat, sind SQL Server-Instanzen unter Linux nicht dazu in der Lage. Daher wird die Clientzertifikatauthentifizierung hinzugefügt, um Benutzern die Authentifizierung mit einem Zertifikat und Schlüssel zu ermöglichen.

Herstellen einer Verbindung mit der Clientzertifikatauthentifizierung

Durch den JDBC-Treiber werden dieser Funktion drei Verbindungseigenschaften hinzugefügt:

  • clientCertificate: Gibt das Zertifikat an, das für die Authentifizierung verwendet werden soll. Der JDBC-Treiber unterstützt die Dateierweiterungen PFX, PEM, DER und CER.

    Format

    clientCertificate=<file_location>
    

Der Treiber verwendet eine Zertifikatsdatei. Für Zertifikate im PEM-, DER- und CER-Format wird das clientKey-Attribut benötigt. Der Dateispeicherort kann entweder relativ oder absolut sein.

  • clientKey: Gibt einen Speicherort des privaten Schlüssels für PEM-, DER- und CER-Zertifikate an, die durch das clientCertificate-Attribut angegeben werden.

    Format

    clientKey=<file_location>
    

Diese Zeichenfolge gibt den Speicherort der Datei mit dem privaten Schlüssel an. Wenn die Datei mit privatem Schlüssel kennwortgeschützt ist, wird das Schlüsselwort „password“ benötigt. Der Dateispeicherort kann entweder relativ oder absolut sein.

  • clientKeyPassword: eine optionale Kennwortzeichenfolge für den Zugriff auf den privaten Schlüssel der Datei „clientKey“.

    Diese Funktion wird offiziell nur für Loopback-Authentifizierungsszenarios ab Linux SQL Server 2019 unterstützt.

Weitere Informationen

Verbinden mit SQL Server mit dem JDBC-Treiber
sp_execute_external_script (Transact-SQL)