2012-10-27 4 views
1

두 개의 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 

답변

0

이 솔루션은 두 개의 지갑 항목을 만드는 것이 었습니다,의 tnsnames.ora에 두 개의 연결 이름을 설정하고 확인 환경 변수가 웹 서버를 시작하는 환경에서 설정 한합니다. Christopher Jones 덕분에이 문제를 해결할 수있었습니다.

관련 문제