OCI_connect / OCIPLogon ORA-01031:权限不足

时间:2012-10-27 04:24:51

标签: php oracle oci8

我们有两个oracle帐户log_reader和log_writer。 log_reader具有读取数据的读取权限。 log_writer具有写入权限,可将数据写入数据库。 该应用程序从Apache运行并使用Perl和PHP。密码被硬编码到php / perl脚本中。最近,我们正在尝试迁移到Oracle Wallet以消除硬编码密码。 Oracle钱包已配置及以下工作 - log_reader和log_writer帐户的sqlplus和perl。 php for log_reader帐户。 php不适用于日志编写器帐户。我们收到以下错误 -

insert err = 1031:ORA-01031: insufficient privileges

PHP代码 -

    $conn = OCIPLogon("/", "", "SLACDEV", "", OCI_CRED_EXT);

简而言之,对于Oracle Wallet,sqlplus和Perl没有问题。 但是对于PHP,当我们尝试将数据写入/插入数据库时​​,我们面临着问题。阅读PHP工作正常。

到目前为止,我已经尝试过,但没有运气 -

    $conn = OCIPLogon("/", "", "SLACDEV", "", OCI_CRED_EXT);
    $conn = OCIPLogon("/", "", "SLACDEV", "", OCI_CRED_EXT+OCI_SYSOPER);
    $conn = OCIPLogon("/", "", "SLACDEV", "", OCI_CRED_EXT+OCI_SYSDBA);

php不适用于日志编写器帐户。我们收到以下错误 -

insert err = 1031:ORA-01031: insufficient privileges

1 个答案:

答案 0 :(得分:0)

解决方案是创建两个钱包条目,在tnsnames.ora中设置两个连接名称,并确保在启动Web服务器的环境中设置环境变量。感谢克里斯托弗·琼斯帮助解决这个问题。