이것은 DBMS 사용상의 문제로서 PHP와의 연동의 문제는 아닌 것 같습니다.
DBMS 이용법은 따로 그 사용법을 배우셔야 하며, document 가 잘되어 있으므로 한번 프린터하여 보는 것도 좋은 방법이라고 생각됩니다.
createuser 를 실행한 계정은 postgres 라는 계정으로 한것이겠지요.
그리고 pg_user 가 없다면 initdb 를 해 주지 않았기 때문일 가능성이 큽니다. 해 주셨는지 궁금하군요. 로컬에서 psql DATABASE_NAME 했을때 해당 DB로 접속은 가능한지요.
디비로 접근할때 backend 가 접근을 하는 것이므로 실재 계정사용자와는 무관합니다. 그러므로 DB 디렉토리의 permission 과는 상관이 없습니다. 777 로 바꾼다는 것은 오히려 보안에 무방비로 만드는 것이므로 위험하기 이를때 없는 발상입니다.
1. postgres 계정으로 접속후 initdb를 해 주었는가?
2. nobody가 PostgreSQL 사용자로 등록되어 있는가?
3. 해당 DATABASE_NAME 으로 nobody 가 접근할 수 있도록 grant 를 주었는가?
4. local 에서 psql DATABASE_NAME 했을때 접근이 가능한가?
이러한 것을 점검해 보시기 바랍니다.
> PHP_Postgresql 관련 질문입니다. 꼭 좀 가르쳐 주세요...
> 문제 1.
> 얼마전 Apache, PHP, Postgresql을 설치했습니다.
> 우여곡절 끝에 Apache/php, PHP/Postgresql 간의 연동은
> 무사히 끝났습니다.
> 그런데 3개 모두 연동을 하는데 있어 문제가 생겼습니다.
>
> HTML에서 data를 받아서 Postgresql에 입력하는 간단한 시험을 하는데 있
> 어
> database 접속에는 문제가 없는데 pg_Exec()를 실행하면서 "Permission
> Denied in DATABASE_NAME" 에러가 발생합니다. 제가 만든 database table
> 의
> 접근권한을 777로 바꿔도 접근 거부 에러가 발생합니다.
>
> 문제2.
> Postgresql에서 "Createuser 아무개;"를 실행하면 PG_User 파일이 없어서 ]
>
> 사용자를 만들수 없다는 에러가 나오더군요. Data 디렉토리 밑에 pg_shadow
> 는
> 있는데 pg_user는 없더라고요... 혹시 제가 Postgresql을 잘못 설치 했나
> 요.
>
>
> 몇일째 진도를 못나가고 있습니다.
> 잠도 제대로 못자고요...누가 저 잠좀 재워주세요...제~~발.
> 꾸벅!
|