GoアプリケーションとWallet(mTLS)を接続

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

トピック

Oracle Walletファイルのダウンロード

Autonomous Databaseインスタンスに接続できるクライアント・セキュリティ資格証明を取得するには、Oracle Wallet (mTLS)ファイルをダウンロードする必要があります。

  1. Autonomous Databaseインスタンスからウォレット・ファイルをダウンロードして、Autonomous Databaseインスタンスへのアクセスに必要なクライアント・セキュリティ資格証明およびネットワーク構成設定を含むzipファイルを取得します。

    管理ユーザーと非管理ユーザーのどちらであるかに応じて、次のようにクライアント・セキュリティ資格証明(wallet.zipファイル)を取得します。

    • ADMINユーザー: Oracle Cloud Infrastructure Consoleで、「データベース接続」をクリックします。「クライアント資格証明(ウォレット)のダウンロード」を参照してください。

    • 他のユーザー(管理者以外): Autonomous Databaseインスタンスの管理者からOracle Walletを取得します。

      ノート

      権限のないデータベースへのアクセスを防ぐために、wallet.zipファイルとそのコンテンツを保護します。
  2. クライアント資格証明ファイル(wallet.zip)を解凍します。

Wallet (mTLS)でのGoアプリケーションの実行

Goアプリケーションは、ウォレットを使用してAutonomous Databaseインスタンスに接続できます。圧縮されたウォレット・ファイルは、クライアント・セキュリティ資格証明を含むAutonomous Databaseインスタンスからダウンロードする必要があります。

godrorドライバには、Oracle Clientライブラリが必要です。「Godrorを使用するためのOracle Clientライブラリのインストール」を参照してください。Oracle Clientライブラリは、Goアプリケーションを実行する場所にインストールされます。

ウォレット・ファイルはzipアーカイブ形式です。データベース・サービス名は、ウォレットzipファイルのtnsnames.oraファイルにあります。次の例では、tnsnames.oraファイルにあるmydb_highネットワーク・サービス名を使用します。

ウォレットzipファイルの次の3つのファイルが必要です。
  • tnsnames.ora: アプリケーション接続文字列に使用されるネット・サービス名を含み、文字列をデータベース・サービスにマップします。

  • sqlnet.ora: SQLNetクライアント側の構成を指定します。

  • cwallet.sso: 自動オープンSSOウォレットが含まれます。

次のステップに従って、ウォレット(mTLS)を使用してGoアプリケーションをAutonomous Databaseインスタンスに接続します:

  1. ファイルtnsnames.orasqlnet.oraおよびcwallet.ssoを、Linuxシステムのオプション(opt)ディレクトリに配置します。/optディレクトリは、コア・オペレーティング・システムの一部ではないオプション・ソフトウェア・パッケージまたはアドオン・ソフトウェア・パッケージのインストールに使用されます。ファイルは、Microsoft Windowsオペレーティング・システムの任意の場所に配置できます。たとえば、Microsoft Windowsオペレーティング・システムのCドライブ(C:)上のサブディレクトリです。

    ファイルは、アクセス可能な任意のディレクトリに移動できます。

    たとえば、Linuxでは、ファイルをディレクトリ/opt/OracleCloud/MYDBに移動し、sqlnet.oraを編集して、ウォレット・ロケーション・ディレクトリをcwallet.ssoファイルを含むディレクトリに変更します。

    たとえば、Linuxでは、次のようにsqlnet.oraを編集します。

    WALLET_LOCATION = (SOURCE = (METHOD=file) (METHOD_DATA = (DIRECTORY="/opt/OracleCloud/MYDB")))
    SSL_SERVER_DN_MATCH=yes

    構成ファイルがデフォルトの場所にない場合、Goアプリケーションでは、config_dirパラメータを使用して構成ファイルがどこにあるかを指定する必要があります。

    ノート

    これらの設定はいずれも必要ありません。すべての構成ファイルをnetwork/adminディレクトリに配置する場合は、sqlnet.oraを編集する必要はありません。
  2. Goアプリケーションで、次の接続パラメータを設定してAutonomous Databaseインスタンスに接続します:
    • user: クラウド・データベース・ユーザーを指定します。
    • password: クラウド・データベース・ユーザーのパスワードを指定します。
    • config_dir: tnsnames.oraおよびsqlnet.oraファイルを配置する構成ディレクトリを指定します。これは、構成ファイルがインスタント・クライアント構成ディレクトリnetwork/adminの外部のディレクトリに配置される場合に必要です。
    • dsn: tnsnames.oraファイルから目的のネットワーク別名を指定します。

    たとえば、ADMINユーザーとして接続し、mydb_highネットワーク・サービス名(サービス名は/opt/OracleCloud/MYDB/tnsnames.oraにあります)で接続するには:

    
    dsn := `user="admin"       
          password="password"       
          connectString="mydb_high"             
          configDir="/opt/OracleCloud/MYDB"` 
    db, _ := sql.Open("godror", dsn)
         

    Goアプリケーションで前述のコードを使用して、接続文字列を作成し、Autonomous Databaseに接続できます。