1

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

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 不适用于 log-writer 帐户。我们收到以下错误 -

insert err = 1031:ORA-01031: insufficient privileges
4

1 回答 1

0

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

于 2012-10-30T23:52:24.657 回答