I am configuring an existing ColdFusion 9 app's Oracle connection. The app currently uses the Oracle JDBC driver that ships with ColdFusion. We are switching from username/password authentication to a combination of Kerberos and Oracle proxy authentication. We have encountered a variety of problems with three different JDBC drivers.
Question 1. The JDBC driver that ships with ColdFusion jdbc.macromedia.oracle does not appear to support Oracle proxy authentication. Normally the username is specified as common_usern[actual_user] (with the square brackets). The database driver should recognize this and create the initial connection as common_user, then initiate a proxy session as actual_user. This works fine from SQL*Plus and other clients, but the jdbc.macromedia.oracle driver throws an invalid username/password error. Checking the Oracle audit tables shows that jdbc.macromedia.oracle is passing the entire username with square brackets, which it is not supposed to do. Does jdbc.macromedia.oracle support Oracle proxy authentication?
Question 2. The JDBC driver that ships with ColdFusion jdbc.macromedia.oracle is widely reported to be a repackaged DataDirect driver. The DataDirect documentation describes how to configure Kerberos authentication. The first step states that the file JDBCDriverLogin.conf should be in the /lib folder, presumably JRun4\lib. I cannot find this file. Does jdbc.macromedia.oracle support Kerberos authentication? If so, where can I find this file?
Question 3. The Oracle JDBC thin driver oracle.jdbc.thin works fine with proxy authentication. But doesn't work with stored procedure REF CURSOR parameters. The ColdFusion documentation for cfprocresult states "You cannot use [REF CURSORS] with Oracle’s ThinClient JDBC drivers." Is this statement up-tod-date? Does it apply to the current v11 Oracle JDBC driver? Is there any workaround that allows REF CURSOR parameters?
Question 4: The Oracle JDBC OCI driver oracle.jdbc.oci connects fine with proxy authentication and the common_user[actual_user] username format, but verifying the current user (select user from dual) shows that the session is not proxying actual_user, instead is common_user. I am hoping there are JDBC connection string attributes that might control this, but cannot find any reference documentation that shows oracle.jdbc.oci connection string attributes. Is anyone using the oracle.jdbc.oci with proxy authentication?
Question 5. The ColdFusion JDBC documentation states "ColdFusion 9 supports DataDirect driver version 4.0 SP1." The DataDirect site shows Progress DataDirect JDBC version 5 drivers. I can't find the v4 drivers on the DataDirect web site. Can the newest v5 DataDirect drivers be used with ColdFusion?
Thanks for your assistance.