답변:
ALTER DATABASE name OWNER TO new_owner;
자세한 내용 은 Postgresql 매뉴얼 항목 을 참조하십시오.
ERROR: must be member of role ...
= RDS와 작동하지 않습니다
Frank Heikens의 답변은 데이터베이스 소유권 만 업데이트합니다. 종종 포함 된 개체 (테이블 포함)의 소유권을 업데이트하려고합니다. Postgres 8.2부터 REASSIGN OWNED 를 사용하여이 작업을 단순화 할 수 있습니다.
중요 편집!
REASSIGN OWNED
원래 역할이 postgres
인 경우 사용하지 마십시오 . 이렇게하면 전체 DB 인스턴스가 손상 될 수 있습니다. 이 명령은 시스템 자원 (postgres0, postgres1 등)을 포함하여 새 소유자로 모든 오브젝트를 업데이트합니다.
먼저 관리자 데이터베이스에 연결하고 DB 소유권을 업데이트하십시오.
psql
postgres=# REASSIGN OWNED BY old_name TO new_name;
이것은 ALTER DATABASE
Frank의 답변에서 제공되는 명령 과 동일한 명령이지만 특정 DB를 업데이트하는 대신 'old_name'이 소유 한 모든 DB의 소유권을 변경합니다.
다음 단계는 각 데이터베이스의 테이블 소유권을 업데이트하는 것입니다.
psql old_name_db
old_name_db=# REASSIGN OWNED BY old_name TO new_name;
'old_name'이 소유 한 각 DB에서 수행해야합니다. 이 명령은 DB에있는 모든 테이블의 소유권을 업데이트합니다.
postgres
, 그 자신 ... 어려운 방법을 배웠습니다.