Oracle OCI并行连接到加密和非加密的Oracle实例

时间:2015-03-17 19:15:08

标签: php oracle oci

在同一个PHP脚本中,我需要连接到两个不同的Oracle数据库,一个需要加密连接,另一个不需要。问题是需要加密连接的那个并不要求它在服务器端,所以我需要在客户端设置'require'。

我可以通过在$ ORACLE_HOME中创建一个sqlnet.ora文件来实现这一点:

  

SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT =(MD5)
  SQLNET.ENCRYPTION_TYPES_CLIENT =(RC4_256)
  SQLNET.ENCRYPTION_CLIENT =必需
  SQLNET.CRYPTO_CHECKSUM_CLIENT =必需

问题是,我的其他连接也需要加密,因此会失败。 我需要在同一个脚本中使用两个连接,所以我不能只为这两个设置不同的ORACLE_HOME,因为它们是同一个脚本的一部分。

任何人都知道如何解决这个问题? 是否可以在连接级别设置加密,因此我可以将其设置为“require”,将其他设置为“none”? 是否可以在同一个脚本中为两个不同的连接提供两个不同的ORACLE_HOME?

1 个答案:

答案 0 :(得分:1)

使用必需时,如果对方指定被拒绝(无加密),或者另一方没有兼容算法,则连接将失败。

您需要使用请求。当使用请求时,如果连接的另一端指定了接受,要求或请求,则服务(加密)将处于活动状态,并且另一方有可用的兼容算法;否则它将处于非活动状态(但不会失败)。

来源:Oracle Database Online Documentation 11g Release 1 (11.1) / Database Administration / Securing the Network