我们正在将现有的Java应用程序转换为PHP。在Java代码中,开发人员作为一个用户连接到数据库,然后使用Java调用函数
((OracleConnection)conn).openProxySession(OracleConnection.PROXYTYPE_USER_NAME, props);
似乎在另一个用户中打开数据库内的代理会话。我对Java的理解是不完整的,但我相信这就是它正在做的事情。 PHP中是否有一个函数可以让我们实现相同的目标?
TIA, 麦克
答案 0 :(得分:2)
检查Oracle OCI manual,因为PHP Oracle扩展是在OCI中实现的。
SQL> alter user user2 grant connect through user1;
您可以使用SQL * Plus进行测试,这也是用OCI编写的:
sqlplus -l user2[user1]/user2pw@localhost/pdborcl
...
SQL> show user
USER is "USER1"
所以在PHP OCI8中使用:
$c = oci_connect('user2[user1]', 'user2pw', 'localhost/pdborcl');
有用户评论推荐PDO。 PHP OCI8扩展具有更多功能,并且能够利用更多Oracle功能(语句缓存,DRCP等),因此强烈建议使用OCI8。