log_reader と log_writer の 2 つのオラクル アカウントがあります。log_reader には、データを読み取るための読み取りアクセス権があります。log_writer には、データベースにデータを書き込む書き込みアクセス権があります。アプリケーションは Apache から実行され、Perl と PHP を使用します。パスワードは、php/perl スクリプトにハードコードされています。最近、ハードコーディングされたパスワードを排除するために Oracle Wallet に移行しようとしています。Oracle ウォレットが構成されており、log_reader アカウントと log_writer アカウントの両方で sqlplus と perl が動作します。log_reader アカウントの php。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