두 개의 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가 로그 작성자 계정에서 작동하지 않습니다. 우리는 오류 다음 얻을 -OCI_connect/OCIPLogon ORA-01031 : 권한이 충분하지 않습니다.
insert err = 1031:ORA-01031: insufficient privileges
PHP 코드 - SQLPLUS와 펄에 대한 문제가없는 오라클 지갑 짧은에서
$conn = OCIPLogon("/", "", "SLACDEV", "", OCI_CRED_EXT);
. 그러나 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