2016-11-02 4 views
2

많은 사용자가 데이터베이스를 공유하고 있으며 모든 사용자가 그룹 "example"에 있고 데이터베이스의 대부분의 개체가 "example"이 소유하고 있습니다. 아주 가끔씩 사용자가 새 테이블을 만듭니다.이 테이블은 테이블을 만든 사용자에게 할당되므로 다른 사용자는 새 테이블을 변경할 수 없습니다.Postgres 테이블의 소유자를 자동으로 변경 하시겠습니까?

자동으로 그룹 "예"가 아닌 테이블이나 CREATE TABALE또는 발생하는 트리거를 설정하는 방법을 만든 사용자 설정 테이블의 소유권을 가질 수있는 방법이 있나요 사용자를 실제로 생성 한 사람과 관계없이 모든 사용자가 개체의 소유자로 간주되도록 그룹/사용 권한을 설정하는 방법?

+1

[이벤트 트리거] 시도 (https://www.postgresql.org/docs/current/static/event-triggers.html) – Abelisto

답변

0

기본 권한이 방법을 변경할 수 :

SCHEMA 공공 그랜트

ALTER시 기본 권한을 PUBLIC에 테이블에 대한 SELECT;

또는 쓰기 액세스 권한을 부여하기 :

SCHEMA 공공 GRANT SELECT, INSERT, UPDATE, 대중에게 테이블에서 삭제 IN

ALTER시 기본 PRIVILEGES;

https://www.postgresql.org/docs/9.0/static/sql-alterdefaultprivileges.html

+0

정말 필요한 것은 '변경'권한입니다. 소유자 만 사용할 수 있습니다 한 사용자가 새 사용자를 만들면 공통 그룹이 아닌 소유자로 할당됩니다. –

0

당신은 아마 사용하려는 EVENT TRIGGER

이 앞으로 9.3에서 대학원의 모든 버전에서 행할 수 있지만, 이벤트 트리거에 대한 구조가 크게 개선 이후 버전에 따라하는 것은 서로 다른 접근 방식이 필요할 수 있습니다.

이전 버전에서는 현재 사용자가 소유 한 항목에 대한 테이블 카탈로그를 살펴볼 수있었습니다. 최신 버전에서는 pg_event_trigger_ddl_commands을 사용하여 필요한 정보를 얻을 수 있습니다. ddl 끝에서 명령을 실행하려고합니다.