TLSを使用したWallet (TLS)なしのGoアプリケーションの接続
TLSを使用してウォレットなしでGoアプリケーションをAutonomous AI Databaseインスタンスに接続できます。
ウォレット(TLS)なしでGoアプリケーションを接続すると、認証および暗号化のセキュリティが提供され、(ユーザー名とパスワードを指定することで)クライアント資格証明を使用してセキュリティが適用されます。
Autonomous AIデータベースでのTLSの有効化および接続文字列の取得
TLSを使用してウォレットなしでGoアプリケーションを実行するには、TLS接続用のAutonomous AI Databaseインスタンスを有効にし、Goアプリケーションからデータベースに接続するための接続文字列を取得します。
-
Autonomous AI DatabaseインスタンスがTLS接続に対して有効になっているかどうかを確認します。
インスタンスでTLS接続が有効になっている場合、コンソールの「ネットワーク」領域で、「相互TLS (mTLS)認証」フィールドに「不要」と表示されます。
インスタンスで相互TLS認証が必要な場合は、Autonomous AI DatabaseインスタンスでTLS接続を許可します。詳細は、TLS認証とmTLS認証の両方を許可するようにAutonomous AIデータベース・インスタンスの更新を参照してください。
-
次のように、Autonomous AI Databaseサービス接続文字列を取得してデータベースにアクセスします:
-
Oracle Cloud Infrastructure Consoleで、「データベース接続」をクリックします。
-
「データベース接続」ダイアログ・ボックスの「接続文字列」の下の「TLS」を「TLS認証」ドロップダウン・リストで選択します。
ノート
ノート:接続文字列をコピーする前に、TLS接続文字列を取得するには、「TLS認証」ドロップダウンで「TLS」を選択する必要があります(値が「相互TLS」の場合、接続文字列の値は異なり、TLS接続では機能しません)。
-
アプリケーションで使用するデータベース・サービスの接続文字列をコピーします。
詳細は、Autonomous AIデータベース・インスタンスのTNS名および接続文字列の表示を参照してください。
-
TLSを使用したWalletなしのGoアプリケーションの実行
次の項では、Autonomous AI DatabaseインスタンスでGoアプリケーションを実行するステップについて説明します。
-
Autonomous AI DatabaseでのTLSの有効化および接続文字列の取得の説明に従って、接続文字列を取得します。
-
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から取得されたレコードを返します。
-