postgreSQL 9.1을 사용하고 있습니다. DB에 4 명의 역할/사용자를 만들었습니다. 각 사용자마다 서로 다른 테이블에 다른 권한이 있습니다.로그인 후 새 사용자로 postgreSQL에 다시 연결
누군가가 로그인 할 때, PHP는 같은 "게스트"(첫 번째 역할/사용자)로 DB에 연결
$conn = pg_connect("host=localhost port=5432 dbname=mydb user=guest password=guest")or die('no connection, sorry');
고객 만 확인하려면 "사용자"테이블에서 "선택"할 수 있습니다 로그인. succesfull 로그인 후 "users"테이블의 "level"이라는 int에 따라 사용자를 db에 다시 연결하려고합니다. 테이블에있는 "수준"1이면 내가
$conn = pg_connect("host=localhost port=5432 dbname=mydb user=low password=low")or die('no connection, sorry');
"낮은"역할처럼, "저"역할/사용자로 사용자를 다시 연결하려는/사용자는 삽입하고 일부 테이블에 업데이트 할 수 있습니다.
그리고 다른 역할/사용자의 경우. users 테이블에 "level"이 2 인 경우 "중간"(연결/삽입/업데이트/삭제 가능)으로 연결하고 3이면 "높음"(수퍼 유저)으로 연결합니다.
간단히 말해서, "손님"으로 연결하여 로그인을 선택하고 유효성을 검사 할 수 있습니다> 로그인 성공> "수준"에 따라 "낮음"으로 다시 연결하므로 다음과 같이 삽입/업데이트 할 수 있습니다. "mid"그래서 당신은 삽입/업데이트/삭제할 수 있습니다 또는 "높은"수퍼 유저.
어떻게 할 수 있습니까? 성공적으로 로그인 한 후 다시 연결하면 사용자가 필요한 권한을 얻을 수 있으므로 올바른 작업을 수행 할 수 있습니까?
GRANT ROLE my_app_user1 TO guest;
그런 다음 인증이 성공하면 당신은 그냥 할 수 있습니다 :
는
성공적인 로그인 후 현재 db에서 연결을 끊고 적절한 권한 수준에 다시 연결하십시오. – shapeshifter
db resourse를 pg_close, http://php.net/manual/en/function.pg-close.php로 전달하십시오. – shapeshifter