2014-10-24 5 views
0

Postgres 9.1 데이터베이스에는 public, firma1 및 firma6 및 기타 스키마가 들어 있습니다.Postgres에서 하나의 스키마 및 공용 스키마에 대한 액세스를 활성화하는 방법

특정 사용자에 대해서만 public 및 firma6 스키마에 대한 액세스를 허용하는 방법. pgadmin에서 데이터베이스에 restristeduser 로그, 여전히 다른 모든 사용자 이름과 firma1 테이블 목록

하기 때문에이 문제를 해결하는 방법 (그것은 단지 firma1 테이블의 내용을 볼 수 없습니다)를 보는 경우

나는

revoke all on schema firma1 from public; 
revoke all on all tables in schema firma1 from public cascade; 

GRANT ALL ON SCHEMA public TO restristeduser; 
GRANT ALL ON SCHEMA firma6 TO restristeduser; 

시도 해당 사용자는 firma1 스키마 개체와 데이터베이스 사용자 이름을 볼 수 없습니까?

답변

2

쉽게 그렇게 할 수 없습니다. 모든 개체를 나열하는 시스템 카탈로그는 기본 설치에서 동일한 데이터베이스의 모든 사용자 (그리고 동일한 데이터베이스 클러스터의 모든 사용자)에게 표시되며 이는 정상적인 작동에 필요합니다.

단순한 개체 존재를 숨기려면 개의 데이터베이스 (또는 별도의 데이터베이스 클러스터)이 필요합니다.

일반적인 개체가 많은 경우 사용자가 별도의 데이터베이스 (클러스터)에 연결하고 dblink 또는 외부 데이터 래퍼 (관리 사용자 권한으로 실행)를 통해 선택한 개체에 액세스 할 수 있습니다.

+0

사용자는 firma1 테이블에 권한이 부여 된 모든 firma1 테이블 정의 및 사용자 이름도 볼 수 있습니까? 이 정보를 숨기는 방법? – Andrus