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

ウォレットを使用して、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インスタンスからzipされたウォレット・ファイルをダウンロードする必要があります。

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. In your Go application set the following connection parameters to connect to the Autonomous Database instance:
    • 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に接続できます。