Go-Anwendungen ohne Wallet (TLS) mit TLS verbinden

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

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

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 von der Go-Anwendung zu kontaktieren.

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

    Wenn die Instanz für TLS-Verbindungen aktiviert ist, wird im Bereich Netzwerk in der Konsole im Feld Gegenseitige TLS-Authentifizierung (mTLS) angezeigt: Nicht erforderlich:

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

    Wenn Ihre Instanz eine gegenseitige TLS-Authentifizierung erfordert, lassen Sie TLS-Verbindungen auf Ihrer Autonomous Database-Instanz zu. 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 Gegenseitige TLS lautet, haben die Verbindungszeichenfolgen unterschiedliche Werte und können nicht mit TLS-Verbindungen verwendet werden.)
    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 für die Verbindung mit einer Autonomous Database-Instanz fest:
    • password: Gibt Sie das Kennwort des Datenbankbenutzers an.
    • user: Gibt den Datenbankbenutzer an.
    • libDir: Ein einzelnes Verzeichnis, in dem Sie das Oracle Instant Client-ZIP-Package entpacken.
    • 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 godror-Treiber auszuführen, müssen Sie zuerst das Package godror importieren.

    Im Folgenden finden Sie einen 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.