Does anyone know of an open source database proxy where it can serve as an intermediary between a closed-source client application and either a SQL server and/or Oracle database?
In my experience, I have not found a proxy for an Oracle database. Therefore, I took matters into my own hands. A valuable source of this information can be found in Oracle's JDBC drivers. As well, I recommend using Wireshark to analyze the basic network traffic between your client and an existing database (although it only understands the basic of the protocol, you can get a feel for the general packet structure).
I don't know what you expect your proxy to do, so I will give you a summary of what I needed mine to do. Mine was supposed to allow clients to connect to my proxy server using a user name, password and SID that could be completely different from the real Oracle server. For example, if a client connected to the proxy as user name corner
, password gas
and SID DOGRIVER
, the proxy would translate it to user name scott
, password tiger
and SID PROD
on the real server.
I have managed to create a proxy that works with 10g databases. With a tiny bit of work, it can be modified to work with 11i. With some more intensive work, it can work with 9i. Most information I needed was found in the JDBC drivers and Wireshark mentioned earlier, but I am willing to share my code if you're interested.