2009-11-30 6 views
2

PostgreSQL 데이터베이스의 한 테이블에서 다른 테이블로 사용자 권한을 복사 할 수 있습니까? 이것은 작동하는 것 같다다른 테이블의 PostgreSQL 복사 권한

UPDATE pg_class 
SET relacl=(SELECT relacl FROM pg_class WHERE relname='source_table') 
WHERE relname='target_table'; 

,하지만 난해야 할 수도 있습니다 무엇을 잃었 : 그것은 단지에로, 소스 테이블의 값에 목표 테이블의 pg_class.relacl 열 값을 업데이트하는 문제입니다 이 방법으로 다른 일을 할 수 있습니까?

미리 답변 해 주셔서 감사합니다.

답변

2

당신이 다음 안전한 방법은 pg_dump를 사용하는 것 대신에 SQL의 명령 줄을 사용할 수있는 경우 :

pg_dump dbname -t oldtablename -s \ 
| egrep '^(GRANT|REVOKE)' \ 
| sed 's/oldtablename/newtablename/' \ 
| psql dbname 

내가 유닉스 서버를 가정합니다. Windows에서는 pg_dump -s을 파일에 사용하고 수동으로 편집 한 다음 데이터베이스로 가져옵니다.

이 테이블이 소유하고있는 시퀀스에 권한을 복사해야 할 수도 있습니다. pg_dump가 작동 할 수 있습니다.

관련 문제