Go-Anwendungen ohne Wallet (TLS) mit TLS verbinden

Sie können Go-Anwendungen ohne Wallet mit TLS mit Ihrer Autonomous Database-Instanz verbinden.

Das Verbinden einer Go-Anwendung ohne Wallet (TLS) bietet Sicherheit für Authentifizierung und Verschlüsselung, und die Sicherheit wird mit Clientzugangsdaten (durch Angabe eines Benutzernamens und Kennworts) durchgesetzt.

Themen

TLS in Autonomous Database aktivieren und Verbindungszeichenfolge abrufen

Um eine Go-Anwendung ohne Wallet mit TLS auszuführen, aktivieren Sie die Autonomous Database-Instanz für TLS-Verbindungen, und rufen Sie eine Verbindungszeichenfolge ab, um die Datenbank über die Go-Anwendung zu kontaktieren.

  1. Prüfen Sie, ob Ihre Autonomous Database-Instanz für TLS-Verbindungen aktiviert ist.

    Wenn die Instanz für TLS-Verbindungen aktiviert ist, zeigt das Feld Mutual TLS-(mTLS-)Authentifizierung in der Konsole im Bereich Netzwerk Folgendes an: Nicht erforderlich:

    Beschreibung von adb_mutual_tls_not_required.png folgt
    Beschreibung der Abbildung adb_mutual_tls_not_required.png

    Wenn für Ihre Instanz eine gegenseitige TLS-Authentifizierung erforderlich ist,zulassen Sie TLS-Verbindungen in der Autonomous Database-Instanz. Weitere Einzelheiten finden Sie unter Autonomous Database-Instanz so aktualisieren, dass sowohl TLS-als auch mTLS-Authentifizierung zulässig sind.

  2. Rufen Sie wie folgt eine Verbindungszeichenfolge für den Autonomous Database-Service ab, um auf die Datenbank zuzugreifen:
    1. Klicken Sie in der Oracle Cloud Infrastructure-Konsole auf Datenbankverbindung.
    2. Wählen Sie im Dialogfeld "Datenbankverbindung" unter Verbindungszeichenfolgen in der Dropdown-Liste TLS-Authentifizierung die Option TLS aus.
      Hinweis

      Sie müssen in der Dropdown-Liste TLS-Authentifizierung die Option TLS auswählen, um die TLS-Verbindungszeichenfolgen abzurufen, bevor Sie eine Verbindungszeichenfolge kopieren (wenn der Wert Wechsel-TLS lautet, haben die Verbindungszeichenfolgen unterschiedliche Werte und funktionieren nicht mit TLS-Verbindungen).
    3. Kopieren Sie die Verbindungszeichenfolge für den Datenbankservice, den Sie mit der Anwendung verwenden möchten.

Go-Anwendung ohne Wallet mit TLS ausführen

Im folgenden Abschnitt werden die Schritte zum Ausführen einer Go-Anwendung auf einer Autonomous Database-Instanz beschrieben.

  1. Rufen Sie die Verbindungszeichenfolge ab, wie unter TLS in Autonomous Database aktivieren und Verbindungszeichenfolge abrufen beschrieben.
  2. Legen Sie in der Go-Anwendung die folgenden Parameter fest, um eine Verbindung zu einer Autonomous Database-Instanz herzustellen:
    • password: Gibt das Kennwort des Datenbankbenutzers an.
    • user: Gibt den Datenbankbenutzer an.
    • libDir: Einzelverzeichnis, in dem Sie das Oracle Instant Client-ZIP-Package dekomprimieren.
    • connectString: Verwenden Sie die Verbindungszeichenfolge, die Sie aus dem vorherigen Schritt abgerufen haben, um eine Verbindung mit dem gewünschten Datenbankservicenamen herzustellen.

    Um eine Go-Anwendung mit dem Treiber godror auszuführen, müssen Sie zuerst das Package godror importieren.

    Beispielcode in der Go-Anwendung, mit dem Sie eine Verbindung zu einer Autonomous Database herstellen können:

    package main
    
    import (
        "database/sql"
        "fmt"
    
        _ "github.com/godror/godror"
    )
    
    func main() {
        connectToADb()
    }
    
    func connectToADb() {
        fmt.Println("Connecting to Oracle Autonomous database !!!")
        db, err := sql.Open("godror", `user="admin" password="password" 
        connectString="tcps://adb.ap-mumbai-1.oraclecloud.com:1522/abcd_xxxx_medium.adb.oraclecloud.com?wallet_location=/Users/user/tool/wallet_DB/"
        libDir="/home/user/tool/instantclient_19_8/"`)
        if err != nil {
            fmt.Println(err)
            return
        }
        defer db.Close()
    
        rows, err := db.Query("select 'hello' from dual")
        if err != nil {
            fmt.Println("Error running query")
            fmt.Println(err)
            return
        }
        defer rows.Close()
    
        var resData string
        for rows.Next() {
    
            rows.Scan(&resData)
        }
        fmt.Printf("The response is: %s\n", resData)
    }
    

    Dieser Code gibt Datensätze zurück, die aus Autonomous Database abgerufen wurden.