【问题标题】:Database connection encryption and integrity with ColdFusion and Oracle thin clientColdFusion 和 Oracle 瘦客户端的数据库连接加密和完整性
【发布时间】:2010-08-30 19:26:10
【问题描述】:

作为 ColdFusion 数据源,我们使用 Oracle 瘦客户端连接数据库。因此,基本上我们使用的是 JDBC URL,例如 jdbc:oracle:thin:@... 并作为驱动程序类 oracle.jdbc.OracleDriver

这很成功,但是我们也想设置加密和完整性参数。在 Java 中,这通过在获取连接之前设置一个 Properties 对象类似地完成,如下所示:

Properties prop = new Properties();
prop.put("oracle.net.encryption_client", "REQUIRED");
prop.put("oracle.net.encryption_types_client", "( DES40 )");
prop.put("oracle.net.crypto_checksum_client", "REQUESTED");
prop.put("oracle.net.crypto_checksum_types_client", "( MD5 )");

...

OracleDataSource ods = new OracleDataSource();
ods.setProperties(prop);
ods.setURL("jdbc:oracle:thin:@localhost:1521:main");
Connection conn = ods.getConnection();

...

有没有办法可以将这些参数传递给 ColdFusion 数据源。理想情况下,我希望以不需要更改所有 cfquery 或 cfstoredproc 的方式集中执行此操作。

我还知道,在 Oracle AS 等应用程序服务器中,创建数据源时有一个选项显示“添加属性”。在那里你可以添加这样的属性。所以,我正在考虑在应用程序中创建一个 JNDI DS。服务器,然后神奇地连接到它,但这可能会对应用程序产生一些影响。

除此之外,我还考虑通过 CF 管理 API (cfide.adminapi.administrator) 与 CF 数据源进行通信,以及扩展 Oracle 驱动程序的选项,以便当 CF 与其连接时,这些参数已经设置。

我很想听听您对此的专业意见和建议。

【问题讨论】:

    标签: java oracle coldfusion jdbc


    【解决方案1】:

    我知道这是一个老问题...

    您绝对可以将连接字符串属性传递给任何 ColdFusion 数据源。

    在 CF ADMIN 中打开数据源后,打开高级设置。您可以在“高级设置”选项卡中更改的第一个选项是“连接字符串”。这将是通过与号 (&) 分隔的所有参数的名称-值对,以在与数据库的连接上传递。

    例如:

    encryption_client=REQUIRED&encryption_types_client=DES40&crypto_checksum_client=REQUESTED&crypto_checksum_types_client=MD5`
    

    但是,OP 的答案是,您也可以在 JDBC URL 上传递参数。

    例如:

    使用 Progress Datadirect 驱动程序,您的 JDBC URL 可能如下所示:

    jdbc:datadirect:oracle://server;SID=someSID;encryption_client=REQUIRED;encryption_types_client=DES40;crypto_checksum_client=REQUIRED;crypto_checksum_types_client=MD5
    

    请记住,您的参数用分号而不是逗号分隔。

    定义数据源时,请确保您使用的是正确类型的驱动程序...某些功能在本机数据源设置屏幕中不可用,因此要使用更高级的功能,您可能需要使用 OTHER。

    【讨论】:

      【解决方案2】:

      ColdFusion 中的所有数据源都可以使用连接字符串进行配置。我会看看是否可以将您的属性作为连接字符串的一部分传递。

      要更改连接字符串,请在 CF 管理员中打开数据源并转到“高级设置”。那里有一个框,你可以填写。

      如果你弄清楚了,那么整个过程对于那些使用数据源的人来说应该是透明的。

      希望对大家有所帮助。

      【讨论】:

      • URL 的格式为 jdbc:oracle::/@ 因此我们无法在此处传递属性映射,即连接字符串。正如我所说,Oracle AS 有一个选项允许您在数据源中添加属性,但 CF 没有(至少是原版 CF8)。
      • 嗯,您是否尝试在 Adob​​e 论坛上发布此内容?那里可能有一些人可以帮助你。 forums.adobe.com/community/coldfusion/coldfusion_database
      • 感谢您的建议!该问题已发布在那里,并且也在等待那里的答复。收到回复后,我将在此处发布解决方案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多