Oracle Connection Managerデータベース・プロキシを使用した接続ロードおよびセキュリティ管理

Oracle Autonomous Database Serverless上のバックエンド・データへのセキュアなアクセスにより、エンド・ユーザーの機密性およびプライバシ要件を保護します。Traffic DirectorモードのOracle Connection Manager (CMAN-TDM)は、データ・セキュリティを損なうことなく、バックエンド・アーキテクチャへのセキュアなアクセスを提供できるデータベース・プロキシ・ソリューションです。

アーキテクチャ

このアーキテクチャは、CMAN-TDMを使用してOracle Cloud上のOracle Autonomous Database Serverlessに接続する方法を示しています。

このアーキテクチャでは、基本構成について説明します。CMAN-TDMのパフォーマンスを向上させる、プロキシ常駐接続プーリング(PRCP)およびスレッド・モードのその他の高度な接続モードがあります。これらの機能は、動的ロード・バランシングおよびインテリジェント・プール管理を通じて、データベース・リソースの使用を最適化します。

次のサンプル・アーキテクチャでは、Oracle Autonomous Database ServerlessはOracle Cloudにありますが、同じ原則がサード・パーティ・クラウドに適用されます。



oci-cman-tdm-oracle.zip

このアーキテクチャでは、次のコンポーネントがサポートされています。

  • CMAN-TDM

    Oracle Connection Manager (CMAN)は、データベースまたはその他のプロキシ・サーバーに接続要求が転送されるプロキシ・サーバー。これは、認証時にデータベースとクライアント間の接続とデータを転送します。CMANはセッション・レベルで動作し、通常はデータベース・サーバーおよびクライアント・コンピュータとは別のコンピュータに存在します。

    CMANには、次の機能があります。
    • アクセス制御: ルールベースの構成を使用してユーザーが指定したクライアント要求をフィルタにかけ、フィルタを通過したものを受け入れます。
    • セッションの多重化: 共有サーバーの接続先へのネットワーク接続により、複数のクライアント・セッションを集中化します。

    Traffic Directorモード(TDM)は、アプリケーションのデータベース・プロキシとして機能するCMANのオプションのインテリジェンス機能です。TDMは、停止サポート、クラウド上の強化されたセキュリティ機能(DoSおよびあいまいな攻撃保護、テナントの分離など)、およびパフォーマンス・チューニング機能によって、透過的な高可用性(HA)の余分な次元を追加します。

    CMAN-TDMを使用すると、基礎となるデータベースの詳細をクライアントに公開せずに、任意のクライアント・アプリケーションがOracle Database (オンプレミスおよびクラウドの両方)に接続できます。様々なバージョンのOracle Databaseと相互運用可能です。

  • Oracle Call Interface (OCI)

    Oracle Call Interfaceは、カスタム・アプリケーションまたはパッケージ・アプリケーション用のOracle Databaseに対する包括的で高パフォーマンスのネイティブC言語インタフェースです。

    APIは、データベース管理タスクを実行するためのOracle Databaseへのインタフェースを提供します。これらは、他の言語固有のインタフェースが構築される基盤です。たとえば、Oracle Data Provider for Net-Core (ODP.Net、 Unmanaged)、Oracle Precompilers (Pro*C)、Oracle ODBC、Oracle C++ Call Interface (OCCI)、およびnode-oracledbおよびpython-oracledbのスクリプト言語ドライバです。CMAN-TDMは、PHPのOCI8、ROracle、Godror、ruby-oci8、rust-oracleなどとも連携します。

  • Java Database Connectivity (JDBC)

    Java Database Connectivityドライバは、Javaプログラムを有効にするJava APIを提供します。これは、Javaアプリケーションがリレーショナル・データベースやその他の表形式データ・ソースのデータに接続および操作するための標準的な方法を提供します。JDBCは「ドライバ」を使用してこの相互作用を促進し、様々なタイプのドライバで様々なレベルのパフォーマンスとプラットフォームの依存関係を提供します。

  • JDBC Thin

    JDBC Thinドライバは、pure JavaのType IVドライバ。このドライバは、JDBC Oracle Call Interfaceドライバが提供するパフォーマンスに匹敵する高いパフォーマンスを提供します。JDBC Thinドライバは、完全にJavaで記述され、軽量であり、プラットフォームに依存せず、クライアント側に追加のOracleソフトウェアを必要としません。

    JDBC Thinドライバは、Oracle DatabaseからデータにアクセスするためにOracleによって開発されたプロトコル、TTCを使用しているサーバーと通信します。アプリケーション・サーバーとアプレットに対して使用できます。このドライバは、Javaソケットの上にOracle NetとTTCを実装するTCP/IPの実装を提供することにより、データベースへの直接接続を可能なとします。このプロトコルはどちらも、対応するサーバー上のプロトコルの軽量版実装です。Oracle NetプロトコルはTCP/IP経由でのみ実行されます。

    JDBC Thinドライバは、クライアント側およびサーバー側で使用できます。クライアント側では、ドライバはクライアントまたは3層構成の中間層で実行されているJavaアプリケーションやJavaアプレットで使用できます。サーバー側では、このドライバが、リモートのOracle Databaseインスタンスまたは同じデータベースの別のセッションへのアクセスに使用されます。

  • node-oracledb

    node-oracledbは、Oracle Databaseに接続するためのNode.jsドライバです。

  • python-oracledb

    python-oracledbは、Oracle Databaseに接続するためのPythonドライバです。

  • Oracle Data Provider for .NET (ODP.NET)

    Oracle Data Provider for .NETの機能により、Oracle DatabaseへのADO.NETデータ・アクセスが最適化されました。ODP.NETを使用すると、開発者は、Oracle Real Application Clusters (Oracle RAC)、自己チューニング文キャッシュ、アプリケーション・コンティニュイティ、高速接続フェイルオーバーなどの高度なOracle Database機能を利用できます。

    次の3つのドライバ・タイプがあります。
    • ODP.NET Core: マルチプラットフォームの.NET (コア)アプリケーション用に設計されています。
    • ODP.NET: 管理対象ドライバ: 100%管理対象コード.NET Frameworkプロバイダ。開発者は、10MB未満のデプロイメント・パッケージに1つのアセンブリをデプロイします。
    • ODP.NET、管理対象外ドライバ: Oracle Database Clientを使用する従来のOracle ADO.NETプロバイダ。
  • プロキシ常駐接続プッキング(PRCP)

    プロキシ常駐接続プーリングは、CMAN-TDMのプーリング機能です。

    Oracle Call Interfaceのセッション・プール機能を使用して、多数のクライアント接続を多重化します。これにより、クライアント・プロセスからの複数の受信接続で、データベース・プロセスに接続された送信接続のプールを使用できます。これらは、CMAN-TDMレイヤーのセッションに関連付けられています。PRCPは、データベースのオーバーヘッドやマルチスレッド・クライアントを必要とせずに、アプリケーション接続用のファネルを提供します。異なるアプリケーション・インスタンスがセッションを共有できます。

必要な製品およびロールについて

このソリューションには、次の製品およびロールが必要です。

  • Oracle Cloud Infrastructure
  • Oracle Autonomous Database

  • Oracle Linux上のOracle Database Client 21c以上
  • CMAN-TDM、バージョン21.3.0.0.0以上

  • SQL*Plusクライアント・アプリケーション: リリース21.3以上

これらは、各製品またはサービスに必要なロールです。

サービス名: ロール 必須...
Oracle Autonomous Database: root CMANを実行するためのoracleユーザー・ディレクトリ、ベース・ディレクトリおよびホーム・ディレクトリを作成します。Linuxでoracleユーザーを設定するには、最新バージョンのOracle Databaseの事前インストール・ライブラリをインストールします。

また、ポートを開き、CMAN-TDMサーバーの CMAN-TDMアドレスを $TNS_ADMIN/tnsnames.oraファイルに追加する必要もあります。

Oracle Autonomous Database: admin CMANへのデータベース接続の確認、データベース・プロキシ・ユーザーの作成、データベース・プロキシ・ユーザー・ウォレットの作成、一般的なアプリケーション・アクセス用のCMAN-TDMアプリケーション・ユーザーの作成、CMAN-TDMを介したOracle Autonomous Databaseへのアクセスを必要とするすべてのアプリケーション・ユーザーへのデータベース・プロキシ・ユーザーのtdm権限の追加を行います。
Oracle Autonomous Database: oracle TNS_ADMIN環境変数を設定し、Oracle Autonomous Databaseに接続するようにCMAN-TDMを構成します
Oracle Cloud Infrastructure: Oracle Cloudアカウント Oracle Cloudに接続し、Oracle Autonomous Databaseなどのサービスを作成します。
CMAN: appユーザー CMAN-TDMを介してデータベースに接続します。appユーザーは、Oracle Autonomous Databaseに登録する必要があります。

必要なものを取得するには、Oracle製品、ソリューションおよびサービスを参照してください。