Connexion d'applications Go sans portefeuille (TLS) à l'aide de TLS

Vous pouvez connecter des applications Go à votre instance Autonomous Database sans portefeuille à l'aide de TLS.

La connexion d'une application Go sans portefeuille (TLS) assure la sécurité de l'authentification et du cryptage, et la sécurité est appliquée à l'aide des informations d'identification client (en fournissant un nom utilisateur et un mot de passe).

Sujets

Activation de TLS sur Autonomous Database et obtention d'une chaîne de connexion

Pour exécuter une application Go sans portefeuille à l'aide de TLS, activez l'instance Autonomous Database pour les connexions TLS et obtenez une chaîne de connexion afin de contacter la base de données à partir de l'application Go.

  1. Déterminez si votre instance Autonomous Database est activée pour les connexions TLS.

    Si l'instance est activée pour les connexions TLS, dans la zone Réseau de la console, le champ Authentification TLS mutuelle (mTLS) indique : Non requis :

    Description de l'image adb_mutual_tls_not_required.png
    Description de l'illustration adb_mutual_tls_not_required.png

    Si votre instance nécessite une authentification TLS mutuelle, autorisez les connexions TLS sur votre instance Autonomous Database. Pour plus de détails, reportez-vous à Mise à jour de l'instance Autonomous Database pour autoriser l'authentification TLS et TMS mutuelle.

  2. Obtenez une chaîne de connexion au service Autonomous Database pour accéder à la base de données comme suit :
    1. Dans la console Oracle Cloud Infrastructure, cliquez sur Connexion à la base de données.
    2. Sélectionnez TLS dans la boîte de dialogue Connexion à la base de données, sous Chaînes de connexion, dans la liste déroulante Authentification TLS.
      Remarque

      Vous devez sélectionner TLS dans la liste déroulante Authentification TLS pour obtenir les chaînes de connexion TLS avant de copier une chaîne de connexion (lorsque la valeur est TLS mutuel, les chaînes de connexion ont des valeurs différentes et ne fonctionnent pas avec les connexions TLS).
    3. Copiez la chaîne de connexion du service de base de données à utiliser avec votre application.

Exécuter une application Go sans portefeuille à l'aide de TLS

La section suivante décrit les étapes à suivre pour exécuter une application Go sur une instance Autonomous Database.

  1. Obtenez la chaîne de connexion, comme décrit dans Activation de TLS sur Autonomous Database et obtention de la chaîne de connexion.
  2. Dans votre application Go, définissez les paramètres suivants pour la connexion à une instance Autonomous Database :
    • password : indique le mot de passe de l'utilisateur de base de données.
    • user : indique l'utilisateur de base de données.
    • libDir : répertoire unique dans lequel vous décompressez le package ZIP Oracle Instant Client.
    • connectString : utilisez la chaîne de connexion obtenue à l'étape précédente pour vous connecter à l'aide du nom de service de base de données souhaité.

    Pour exécuter une application Go à l'aide du pilote godror, vous devez d'abord importer le package godror.

    Voici un exemple de code dans l'application Go qui vous permet de vous connecter à une instance Autonomous Database :

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

    Ce code renvoie les enregistrements extraits d'Autonomous Database.