使用 Oracle Connection Manager 数据库代理进行连接加载和安全管理

Oracle Autonomous Database Serverless 上保护对后端数据的访问,以保护最终用户的敏感性和隐私要求。Oracle Connection Manager in Traffic Director Mode ( CMAN-TDM ) 是一个数据库代理解决方案,使您能够在不影响数据安全的情况下提供对后端体系结构的安全访问。

体系结构

此架构展示了如何使用 CMAN-TDM 连接到 Oracle Cloud 上的 Oracle Autonomous Database Serverless

此体系结构介绍了基本配置。代理驻留连接池 (Proxy Resident Connection Pooling,PRCP) 和线程模式的其他高级连接模式可提高 CMAN-TDM 的性能。这些功能通过动态负载平衡和智能池管理优化数据库资源的使用。

在以下示例体系结构中,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 (Oracle 调用接口,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-oracledbpython-oracledb 的脚本语言驱动程序。CMAN-TDM 还适用于 PHP OCI8、ROracle、Godror、ruby-oci8、rust-oracle 等。

  • Java 数据库连接 (JDBC)

    Java Database Connectivity 驱动程序提供支持 Java 程序的 Java API。它为 Java 应用程序提供了连接和处理关系数据库和其他表格数据源中的数据的标准方法。JDBC 使用“驱动程序”来促进这种交互,不同类型的驱动程序提供不同级别的性能和平台依赖性。

  • JDBC Thin

    JDBC Thin 驱动程序是一个纯 Java 类型 IV 驱动程序。该驱动程序提供与 JDBC Oracle Call Interface 驱动程序提供的性能相当的高性能。JDBC Thin 驱动程序完全使用 Java 编写,重量轻,与平台无关,并且不需要客户端上的任何其他 Oracle 软件。

    JDBC Thin 驱动程序使用 TTC 与服务器通信,TTC 是 Oracle 开发的用于访问 Oracle Database 数据的协议。它既可用于应用服务器,也可用于小程序。该驱动程序允许通过提供 TCP/IP 实现与数据库的直接连接,该 TCP/IP 实现 Java 套接字上的 Oracle Net 和 TTC。这两种协议都是服务器上对应协议的轻量级实现版本。Oracle Net 协议仅通过 TCP/IP 运行。

    您可以在客户端和服务器端使用 JDBC Thin 驱动程序。在客户端,驱动程序用于在客户端或三层配置的中间层上运行的 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 Database 功能,包括 Oracle Real Application Clusters (Oracle RAC)、自优化语句高速缓存、应用连续性和快速连接故障转移。

    有三种驱动程序类型:
    • ODP.NET Core:专为多平台 .NET(核心)应用程序而设计
    • ODP.NET,托管驱动程序:100% 托管代码 .NET Framework 提供程序。开发人员在小于 10 MB 的部署包中部署单个组件。
    • ODP.NET,Unmanaged Driver:使用 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 创建用于运行 CMANoracle 用户、基目录和起始目录。安装最新版本的 Oracle Database 的预安装库,以在 Linux 中设置 oracle 用户。

还需要在 $TNS_ADMIN/tnsnames.ora 文件中打开端口并添加 CMAN-TDM 服务器的 CMAN-TDM 地址。

Oracle Autonomous Database :admin 检查与 CMAN 的数据库连接,创建数据库代理用户,创建数据库代理用户 wallet,创建用于常规应用程序访问的 CMAN-TDM 应用程序用户,将数据库代理用户 tdm 权限添加到需要通过 CMAN-TDM 访问 Oracle Autonomous Database 的所有应用程序用户。
Oracle Autonomous Database :oracle 设置 TNS_ADMIN 环境变量,配置 CMAN-TDM 以连接到 Oracle Autonomous Database
Oracle Cloud Infrastructure:Oracle Cloud 账户 连接到 Oracle Cloud 并创建服务,包括 Oracle Autonomous Database
CMANapp 用户 通过 CMAN-TDM 连接到数据库。app 用户必须注册到 Oracle Autonomous Database

观看 Oracle 产品、解决方案和服务,了解您的需求。