在同一个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?
答案 0 :(得分:1)
使用必需时,如果对方指定被拒绝(无加密),或者另一方没有兼容算法,则连接将失败。
您需要使用请求。当使用请求时,如果连接的另一端指定了接受,要求或请求,则服务(加密)将处于活动状态,并且另一方有可用的兼容算法;否则它将处于非活动状态(但不会失败)。