TLSを使用したWallet (TLS)なしのGoアプリケーションの接続

TLSを使用してウォレットなしでGoアプリケーションをAutonomous AI Databaseインスタンスに接続できます。

ウォレット(TLS)なしでGoアプリケーションを接続すると、認証および暗号化のセキュリティが提供され、(ユーザー名とパスワードを指定することで)クライアント資格証明を使用してセキュリティが適用されます。

Autonomous AIデータベースでのTLSの有効化および接続文字列の取得

TLSを使用してウォレットなしでGoアプリケーションを実行するには、TLS接続用のAutonomous AI Databaseインスタンスを有効にし、Goアプリケーションからデータベースに接続するための接続文字列を取得します。

  1. Autonomous AI DatabaseインスタンスがTLS接続に対して有効になっているかどうかを確認します。

    インスタンスでTLS接続が有効になっている場合、コンソールの「ネットワーク」領域で、「相互TLS (mTLS)認証」フィールドに「不要」と表示されます。

    インスタンスで相互TLS認証が必要な場合は、Autonomous AI DatabaseインスタンスでTLS接続を許可します。詳細は、TLS認証とmTLS認証の両方を許可するようにAutonomous AIデータベース・インスタンスの更新を参照してください。

  2. 次のように、Autonomous AI Databaseサービス接続文字列を取得してデータベースにアクセスします:

    1. Oracle Cloud Infrastructure Consoleで、「データベース接続」をクリックします。

    2. 「データベース接続」ダイアログ・ボックスの「接続文字列」の下の「TLS」「TLS認証」ドロップダウン・リストで選択します。

      ノート

      ノート:接続文字列をコピーする前に、TLS接続文字列を取得するには、「TLS認証」ドロップダウンで「TLS」を選択する必要があります(値が「相互TLS」の場合、接続文字列の値は異なり、TLS接続では機能しません)。

    3. アプリケーションで使用するデータベース・サービスの接続文字列をコピーします。

      詳細は、Autonomous AIデータベース・インスタンスのTNS名および接続文字列の表示を参照してください。

TLSを使用したWalletなしのGoアプリケーションの実行

次の項では、Autonomous AI DatabaseインスタンスでGoアプリケーションを実行するステップについて説明します。

  1. Autonomous AI DatabaseでのTLSの有効化および接続文字列の取得の説明に従って、接続文字列を取得します。

  2. Goアプリケーションで、次のパラメータを設定してAutonomous AI Databaseインスタンスに接続します:

    • password: データベース・ユーザーのパスワードを指定します。

    • user: データベース・ユーザーを指定します。

    • libDir: Oracle Instant Client圧縮パッケージを解凍する1つのディレクトリ。

    • connectString: 前のステップで取得した接続文字列を使用して、優先データベース・サービス名を使用して接続します。

    godrorドライバを使用してGoアプリケーションを実行するには、まずgodrorパッケージをインポートする必要があります。

    Autonomous AI Databaseに接続できるGoアプリケーションのサンプル・コードを次に示します:

    package main
    
    import (
        "database/sql"
        "fmt"
    
        _ "github.com/godror/godror"
    )
    
    func main() {
        connectToADb()
    }
    
    func connectToADb() {
        fmt.Println("Connecting to Oracle Autonomous AI 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)
    }

    このコードは、Autonomous AI Databaseから取得されたレコードを返します。