JDBC Thin-Verbindungen mit einem Wallet (mTLS)
Autonome KI-Datenbank erfordert eine sichere Verbindung, die Transport Layer Security (TLSv1.2) verwendet. Je nach Netzwerkkonfigurationsoptionen unterstützt Autonomous AI Database die mTLS- und TLS-Authentifizierung.
Wenn Sie TLS anstelle von mTLS für Verbindungen verwenden, die JDBC-Thin-Treiber mit JDK8u162 oder höher verwenden, ist kein Wallet erforderlich. TLS-Verbindungen sind für die folgenden Netzwerkkonfigurationen aktiviert:
-
Nur Zugriff auf privaten Endpunkt: Netzwerkkonfiguration mit einem privaten Endpunkt
-
Sicherer Zugriff nur von zulässigen IPs und VCNs: Konfiguration mit einer Access-Control-Liste (ACL)
Wenn sich Ihre autonome KI-Datenbank auf einem öffentlichen Endpunkt ohne ACL befindet, können Sie
0.0.0.0/0als CIDR-ACL hinzufügen und die TLS-Authentifizierung aktivieren. Das Hinzufügen von0.0.0.0/0als CIDR-ACL ist identisch mit dem Hinzufügen der autonomen KI-Datenbank auf einem öffentlichen Endpunkt ohne ACL.
Weitere Informationen finden Sie unter Sichere Verbindungen zur autonomen KI-Datenbank mit mTLS oder mit TLS.
- JDBC-Thin-Treiberverbindung – Voraussetzungen für Verbindungen mit Wallets (mTLS)
Anwendungen, die JDBC-Thin-Treiber verwenden, unterstützen TLS- und gegenseitige TLS-(mTLS-)Authentifizierung. Bei der mTLS-Authentifizierung müssen Sie Oracle-Datenbankzugangsdaten angeben, einschließlich der Oracle-Wallets oder Java-KeyStore-(JKS-)Dateien, wenn Sie eine Verbindung zur Datenbank herstellen. - JDBC-URL-Verbindungszeichenfolge mit JDBC-Thin-Treiber und -Wallets verwenden
Die Verbindungszeichenfolge befindet sich in der Dateitnsnames.ora, die Teil des Downloads der Clientzugangsdaten ist. Die Dateitnsnames.oraenthält die vordefinierten Servicenamen. Jeder Service verfügt über einen eigenen TNS-Alias und eine eigene Verbindungszeichenfolge. - JDBC-Verbindung mit 18.3 JDBC-Treiber verwenden
Anwendungen, die den JDBC-Thin-Treiber verwenden, können mit Oracle Wallets oder Java KeyStore (JKS) eine Verbindung zu autonomen KI-Datenbanken herstellen. - Verbindung mit JDBC-Thin-Treiber 12.2 oder älter herstellen
Wenn Sie den JDBC-Treiber 12.2.0.2 oder älter verwenden, legen Sie die Java-Eigenschaften vor dem Starten der Anwendung fest. In der Regel legen Sie die Eigenschaften im Startskript der Anwendung fest. - JDBC Thin-Verbindungen mit einem HTTP-Proxy
Wenn sich der Client hinter einer Firewall befindet und Ihre Netzwerkkonfiguration einen HTTP-Proxy benötigt, um eine Verbindung zum Internet herzustellen, müssen Sie den JDBC Thin Client 18.1 oder höher verwenden, der Verbindungen über HTTP-Proxys ermöglicht.
Übergeordnetes Thema: Mit JDBC Thin-Treiber verbinden
JDBC-Thin-Treiberverbindung – Voraussetzungen für Verbindungen mit Wallets (mTLS)
Anwendungen, die JDBC-Thin-Treiber verwenden, unterstützen TLS- und gegenseitige TLS-(mTLS-)Authentifizierung. Bei der mTLS-Authentifizierung müssen Sie Oracle-Datenbankzugangsdaten angeben, einschließlich der Oracle-Wallets oder Java-KeyStore-(JKS-)Dateien, wenn Sie eine Verbindung zur Datenbank herstellen.
Führen Sie die folgenden Schritte aus, bevor Sie sich bei der Datenbank anmelden:
Übergeordnetes Thema: JDBC Thin-Verbindungen mit einem Wallet (mTLS)
JDBC-URL-Verbindungszeichenfolge mit JDBC-Thin-Treiber und Wallets verwenden
Die Verbindungszeichenfolge befindet sich in der Datei tnsnames.ora, die Teil des Downloads der Clientzugangsdaten ist. Die Datei tnsnames.ora enthält die vordefinierten Servicenamen. Jeder Service verfügt über einen eigenen TNS-Alias und eine eigene Verbindungszeichenfolge.
dbname_high als TNS-Alias und einer Verbindungszeichenfolge in tnsnames.ora lautet wie folgt:dbname_high= (description=
(address=(protocol=tcps)(port=1522)(host=adb.example.oraclecloud.com))
(connect_data=(service_name=dbname_high.oraclecloud.com))(security=(ssl_server_dn_match=yes)))Legen Sie den Speicherort von tnsnames.ora mit der Eigenschaft TNS_ADMIN wie folgt fest:
- Als Teil der Verbindungszeichenfolge (nur mit dem 18.3- oder neueren JDBC-Treiber)
- Als Systemeigenschaft,
-Doracle.net.tns_admin - Als Verbindungseigenschaft (
OracleConnection.CONNECTION_PROPERTY_TNS_ADMIN)
Mit dem JDBC-Treiber 18.3 enthält die Verbindungszeichenfolge den TNS-Alias und die Verbindungseigenschaft TNS_ADMIN.
Beispiel-Verbindungszeichenfolge mit 18.3 JDBC-Treiber (Linux):
DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"Beispiel-Verbindungszeichenfolge mit 18.3 JDBC-Treiber (Windows):
DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=C:\\Users\\test\\wallet_dbname"Die Verbindungseigenschaft TNS_ADMIN gibt Folgendes an:
- Der Speicherort von
tnsnames.ora. - Der Speicherort der Oracle Wallet-Dateien (
ewallet.sso,ewallet.p12) oder Java KeyStore-(JKS-)Dateien (truststore.jks,keystore.jks). - Der Speicherort von
ojdbc.properties. Diese Datei enthält die Verbindungseigenschaften, die für die Verwendung von Oracle Wallets oder Java KeyStore (JKS) erforderlich sind.
Wenn Sie 12.2.0.1 oder ältere JDBC-Treiber verwenden, enthält die Verbindungszeichenfolge nur den TNS-Alias. So stellen Sie Verbindungen mit älteren JDBC-Treibern her:
- Legen Sie den Speicherort der
tnsnames.orafest, entweder als Systemeigenschaft mit-Doracle.net.tns_adminoder als Verbindungseigenschaft (OracleConnection.CONNECTION_PROPERTY_TNS_ADMIN). - Legen Sie die Wallet- oder JKS-bezogenen Verbindungseigenschaften zusätzlich zu
TNS_ADMINfest.
Beispiel: In diesem Fall legen Sie den TNS-Alias im DB_URL ohne den TNS_ADMIN-Teil wie folgt fest:
DB_URL=”jdbc:oracle:thin:@dbname_high”
Weitere Informationen finden Sie unter Datenbankservicenamen für autonome KI-Datenbank.
Übergeordnetes Thema: JDBC Thin-Verbindungen mit einem Wallet (mTLS)
JDBC-Verbindung mit 18.3 JDBC-Treiber verwenden
Anwendungen, die den JDBC-Thin-Treiber verwenden, können mit Oracle Wallets oder Java KeyStore (JKS) eine Verbindung zu autonomen KI-Datenbanken herstellen.
Oracle Wallet verwenden
Um Java und den 18.3 JDBC-Thin-Treiber für die Verbindung mit der autonomen KI-Datenbank mit Oracle Wallet zu verwenden, gehen Sie wie folgt vor:
-
Stellen Sie sicher, dass die Voraussetzungen erfüllt sind: Weitere Informationen finden Sie unter JDBC-Thin-Treiberverbindung - Voraussetzungen für Verbindungen mit Wallets (mTLS).
-
Verbindung prüfen: Sie können entweder ein Java-Programm, ein Servlet oder IDEs verwenden, um die Verbindung zur Datenbank zu prüfen. Ein einfacher Test besteht darin, DataSourceSample.java oder UCPSample.java aus JDBC-Codebeispielen herunterzuladen und die Verbindungs-URL so zu aktualisieren, dass der erforderliche TNS-Alias vorhanden ist, und
TNS_ADMINzu übergeben. Dabei wird der Pfad fürtnsnames.oraund die Wallet-Dateien angegeben. Aktualisieren Sie außerdem im Beispielquellcode den Benutzernamen und das Kennwort der Datenbank. Beispiel:DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"Hinweis
Wenn Sie Microsoft Active Directory mit einer Datenbank verwenden, aktualisieren Sie im Beispielquellcode den Benutzernamen mit dem Active Directory-Benutzernamen, und aktualisieren Sie das Kennwort mit dem Active Directory-Benutzerkennwort. Weitere Informationen finden Sie unter Microsoft Active Directory mit Autonomous AI Database verwenden. -
Wallet-Speicherort festlegen: Die Eigenschaftendatei
ojdbc.propertieswird mit der Wallet-bezogenen Verbindungseigenschaft vorab geladen.oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN})))Hinweis
Sie ändern die Dateiojdbc.propertiesnicht. Der Wert vonTNS_ADMINbestimmt den Wallet-Speicherort. -
Kompilieren und ausführen: Kompilieren Sie das Beispiel, und führen Sie es aus, um eine erfolgreiche Verbindung herzustellen. Stellen Sie sicher, dass
oraclepki.jar,osdt_core.jarundosdt_cert.jarin derclasspathenthalten sind. Beispiel:java –classpath ./lib/ojdbc8.jar:./lib/ucp.jar:./lib/oraclepki.jar:./lib/osdt_core.jar:./lib/osdt_cert.jar:. UCPSample
Mit dem Wallet-Teil für die automatische Anmeldung in der ZIP-Datei mit den heruntergeladenen Clientzugangsdaten der autonomen AI-Datenbank muss die Anwendung keine Benutzernamen-/Kennwortauthentifizierung verwenden.
Java KeyStore verwenden
Um mit Java KeyStore (JKS) eine Verbindung zur autonomen KI-Datenbank herzustellen, führen Sie die folgenden Schritte aus, um Java und den JDBC-Thin-Treiber 18.3 zu verwenden:
-
Stellen Sie sicher, dass die Voraussetzungen erfüllt sind: Weitere Informationen finden Sie unter JDBC-Thin-Treiberverbindung - Voraussetzungen für Verbindungen mit Wallets (mTLS).
-
Bereitstellen der Datenbankdetails: Sie können entweder ein Java-Programm, ein Servlet oder IDEs verwenden, um die Verbindung zur Datenbank zu prüfen. Ein einfacher Test ist das Herunterladen von DataSourceSample.java oder UCPSample.java aus JDBC-Codebeispielen. Verwenden Sie in diesem Beispiel die Verbindungs-URL wie gezeigt. Beachten Sie, dass die Verbindung
DB_URLden TNS-Alias enthält. Beispiel:dbname_highist intnsnames.oravorhanden. Sie können den Pfad für die Dateitnsnames.oraüber die EigenschaftTNS_ADMINangeben, wie in der URL gezeigt. Stellen Sie sicher, dass Sie den Datenbankbenutzernamen und das Kennwort für Ihre Datenbank verwenden.DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"Hinweis
Wenn Sie Microsoft Active Directory mit Autonomous AI Database verwenden, müssen Sie den Beispielquellcode so ändern, dass der Active Directory-Benutzername und das Active Directory-Benutzerkennwort verwendet werden. Weitere Informationen finden Sie unter Microsoft Active Directory mit Autonomous AI Database verwenden. -
JKS-bezogene Verbindungseigenschaften festlegen: Fügen Sie die JKS-bezogenen Verbindungseigenschaften zur Datei
ojdbc.propertieshinzu. keyStore und Truststore-Kennwort sind das Kennwort, das beim Herunterladen der Datei.zipmit den Clientzugangsdaten angegeben wird.Um SSL-Konnektivität anstelle von Oracle Wallet zu verwenden, geben Sie die Keystore- und Truststore-Dateien und das zugehörige Kennwort wie folgt in der Datei
ojdbc.propertiesan:# Properties for using Java KeyStore (JKS) oracle.net.ssl_server_dn_match=true javax.net.ssl.trustStore==${TNS_ADMIN}/truststore.jks javax.net.ssl.trustStorePassword=password javax.net.ssl.keyStore==${TNS_ADMIN}/keystore.jks javax.net.ssl.keyStorePassword=passwordHinweis
Stellen Sie sicher, dass Sie die Wallet-bezogene Eigenschaft inojdbc.propertieskommentieren. Beispiel:# Property for using Oracle Wallets # oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN}))) -
Kompilieren und ausführen: Kompilieren Sie das Beispiel, und führen Sie es aus, um eine erfolgreiche Verbindung herzustellen. Beispiel:
java –classpath ./lib/ojdbc8.jar:./lib/ucp.jar UCPSample
Übergeordnetes Thema: JDBC Thin-Verbindungen mit einem Wallet (mTLS)
Verbindung mit JDBC-Thin-Treiber 12.2 oder älter
Wenn Sie den JDBC-Treiber 12.2.0.2 oder älter verwenden, legen Sie die Java-Eigenschaften fest, bevor Sie die Anwendung starten. In der Regel legen Sie die Eigenschaften im Startskript der Anwendung fest.
Wenn Sie die neuesten JDBC-Treiber nicht verwenden können, können Sie mit 12.2.0.2 oder anderen älteren JDBC-Treibern eine Verbindung zur autonomen KI-Datenbank herstellen. Die JDBC-Treiber der Version 12.2 oder älter unterstützen die Datei ojdbc.properties nicht. Bei älteren JDBC-Treiberversionen müssen Sie Wallets oder JKS-bezogene Eigenschaften entweder als Systemeigenschaften oder als Verbindungseigenschaften übergeben, um eine Verbindung herzustellen.
Oracle Wallet verwenden
Um Java und die 12.2- oder älteren JDBC-Treiber für die Verbindung mit der autonomen KI-Datenbank mit Oracle Wallet zu verwenden, gehen Sie wie folgt vor:
-
Stellen Sie sicher, dass die Voraussetzungen erfüllt sind: Weitere Informationen finden Sie unter JDBC-Thin-Treiberverbindung - Voraussetzungen für Verbindungen mit Wallets (mTLS).
-
Verbindung prüfen: Sie können entweder ein Java-Programm, ein Servlet oder IDEs verwenden, um die Verbindung zur Datenbank zu prüfen. Ein einfacher Test besteht darin, DataSourceSample.java oder UCPSample.java aus JDBC-Codebeispielen herunterzuladen und die Verbindungs-URL so zu aktualisieren, dass der erforderliche TNS-Alias vorhanden ist. Aktualisieren Sie außerdem den Beispielquellcode, um den Benutzernamen und das Kennwort der Datenbank zu verwenden. Beispiel:
DB_URL="jdbc:oracle:thin:@dbname_high”Hinweis
Wenn Sie Microsoft Active Directory mit Autonomous AI Database verwenden, aktualisieren Sie den Beispielquellcode so, dass der Active Directory-Benutzername und das Active Directory-Benutzerkennwort verwendet werden. Weitere Informationen finden Sie unter Microsoft Active Directory mit Autonomous AI Database verwenden. -
Wallet-Speicherort festlegen: Fügen Sie die
OraclePKIProvideram Ende der Providerliste in der Dateijava.securityhinzu (diese Datei ist Teil der JRE-Installation unter$JRE_HOME/jre/lib/security/java.security), die normalerweise wie folgt aussieht:security.provider.14=oracle.security.pki.OraclePKIProvider -
Kompilieren und ausführen: Kompilieren Sie das Beispiel, und führen Sie es aus, um eine erfolgreiche Verbindung herzustellen. Stellen Sie sicher, dass
oraclepki.jar,osdt_core.jarundosdt_cert.jarinclasspathenthalten sind. Außerdem müssen Sie die Verbindungseigenschaften übergeben. Aktualisieren Sie die Eigenschaften mit dem Speicherort, in dem sichtnsnames.oraund Wallet-Dateien befinden.java –classpath ./lib/ojdbc8.jar:./lib/ucp.jar:./lib/oraclepki.jar:./lib/osdt_core.jar:./lib/osdt_cert.jar:. -Doracle.net.tns_admin=/users/test/wallet_dbname -Doracle.net.ssl_server_dn_match=true -Doracle.net.ssl_version=1.2 (Not required for 12.2) -Doracle.net.wallet_location= “(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/users/test/wallet_dbname)))” UCPSample
Dies sind Windows-Systembeispiele. Fügen Sie ein Fortsetzungszeichen
\ hinzu, wenn Sie –D-Eigenschaften auf mehreren Zeilen unter UNIX (Linux oder Mac) festlegen.
Java KeyStore verwenden
Um Java und die 12.2 oder älteren JDBC-Thin-Treiber für die Verbindung mit der autonomen KI-Datenbank mit Java KeyStore (JKS) zu verwenden, gehen Sie wie folgt vor:
-
Stellen Sie sicher, dass die Voraussetzungen erfüllt sind: Weitere Informationen finden Sie unter JDBC-Thin-Treiberverbindung - Voraussetzungen für Verbindungen mit Wallets (mTLS).
-
Verbindung prüfen: Sie können entweder ein Java-Programm, ein Servlet oder IDEs verwenden, um die Verbindung zur Datenbank zu prüfen. Ein einfacher Test besteht darin, DataSourceSample.java oder UCPSample.java aus JDBC-Codebeispielen herunterzuladen und die Verbindungs-URL mit dem erforderlichen TNS-Alias zu aktualisieren und
TNS_ADMINzu übergeben. Geben Sie dabei den Pfad fürtnsnames.oraan, und aktualisieren Sie die Verbindungs-URL so, dass der erforderliche TNS-Alias vorhanden ist. Aktualisieren Sie außerdem im Beispielquellcode den Benutzernamen und das Kennwort der Datenbank. Beispiel:DB_URL="jdbc:oracle:thin:@dbname_high”Hinweis
Wenn Sie Microsoft Active Directory mit Autonomous AI Database verwenden, aktualisieren Sie den Beispielquellcode so, dass der Active Directory-Benutzername und das Active Directory-Benutzerkennwort verwendet werden. Weitere Informationen finden Sie unter Microsoft Active Directory mit Autonomous AI Database verwenden. -
Kompilieren und ausführen: Kompilieren Sie das Beispiel, und führen Sie es aus, um eine erfolgreiche Verbindung herzustellen. Sie müssen die Verbindungseigenschaften wie dargestellt übergeben. Aktualisieren Sie die Eigenschaften mit dem Speicherort, in dem die Dateien
tnsnames.oraund JKS gespeichert werden. Wenn Sie diese Verbindungseigenschaften programmgesteuert übergeben möchten, lesen Sie DataSourceForJKS.java. Beispiel:java -Doracle.net.tns_admin=/users/test/wallet_dbname -Djavax.net.ssl.trustStore=truststore.jks -Djavax.net.ssl.trustStorePassword=********** -Djavax.net.ssl.keyStore=keystore.jks -Djavax.net.ssl.keyStorePassword=************ -Doracle.net.ssl_server_dn_match=true -Doracle.net.ssl_version=1.2 // Not required for 12.2
Übergeordnetes Thema: JDBC Thin-Verbindungen mit einem Wallet (mTLS)
JDBC Thin-Verbindungen mit einem HTTP-Proxy
Wenn sich der Client hinter einer Firewall befindet und Ihre Netzwerkkonfiguration einen HTTP-Proxy für die Verbindung mit dem Internet erfordert, müssen Sie den JDBC Thin Client 18.1 oder höher verwenden, der Verbindungen über HTTP-Proxys ermöglicht.
Um über einen HTTPS-Proxy eine Verbindung zur autonomen KI-Datenbank herzustellen, öffnen und aktualisieren Sie die Datei tnsnames.ora. Fügen Sie den HTTP-Proxyhostnamen (https_proxy) und den Port (https_proxy_port) zur Verbindungszeichenfolge hinzu. Ersetzen Sie die Werte durch Ihre HTTPS-Proxyinformationen. Beispiel:
-
Fügen Sie den HTTP-Proxyhostnamen und -Port zu den Verbindungsdefinitionen in
tnsnames.orahinzu. Sie müssen die Parameter https_proxy und https_proxy_port im Adressabschnitt der Verbindungsdefinitionen hinzufügen. Beispiel: Im Folgenden wird der HTTP-Proxy aufproxyhostnameund der HTTP-Proxyport auf80gesetzt. Ersetzen Sie diese Werte durch Ihre HTTP-Proxyinformationen:
db2022adb_high =
(description=
(address=
(https_proxy=proxyhostname)(https_proxy_port=80)(protocol=tcps)(port=1522)(host=adb.example.oraclecloud.com)
)
(connect_data=(service_name=db2022adb_high.adb.oraclecloud.com)
)
(security=security=(ssl_server_dn_match=yes)
)
)-
JDBC Thin-Clientversionen vor 18.1 unterstützen keine Verbindungen über HTTP-Proxy.
-
Eine erfolgreiche Verbindung hängt von bestimmten Proxykonfigurationen ab, und die Leistung der Datenübertragungen hängt von der Proxykapazität ab. Oracle empfiehlt nicht, dieses Feature in Produktionsumgebungen zu verwenden, in denen die Performance von entscheidender Bedeutung ist.
-
Die Konfiguration von
tnsnames.orafür den HTTP-Proxy ist je nach Netzwerkkonfiguration und Sicherheits-Policys Ihrer Organisation möglicherweise nicht ausreichend. Beispielsweise erfordern einige Netzwerke einen Benutzernamen und ein Kennwort für den HTTP-Proxy. -
Wenden Sie sich in allen Fällen an den Netzwerkadministrator, um ausgehende Verbindungen zu Hosts in der Domain
oraclecloud.commit dem relevanten Port zu öffnen, ohne einen HTTP-Proxy zu durchlaufen.
Übergeordnetes Thema: JDBC Thin-Verbindungen mit einem Wallet (mTLS)