다른 컴퓨터를 대상으로하는 pg_dump 중에“pg_catalog.tablename”을 만들 수있는 권한이 거부되었습니다.


11

9.5 베타 2에서 9.4.4 서버로 일부 테이블을 덤프하려고합니다. 내가 사용하는 명령의 형태는 상당히 표준입니다.

pg_dump -t table dbname | psql -h hostname -d dbname

Postgres 사용자를 사용하고 있습니다. 이는 이상적이지 않을 수도 있지만 둘 다 내가 사용하는 dev 데이터 처리 상자이므로 다음 오류와 관련이 있습니다. 처음에는 오류가 발생했습니다.

오류 : 인식 할 수없는 구성 매개 변수 "row_security"

이 기능은 9.5의 새로운 기능이므로 예상됩니다. 예, 다른 Postgres 버전간에 pg_dump를 사용하는 것은 좋지 않지만, 매우 모호한 버그가 발생하여 크게 움직일 필요가 있다는 점을 감안할 때 피할 수는 없습니다. 정적 데이터의 양입니다.

따라서이 끔찍한 핵을 사용하여 row_security 오류를 제거하고 첫 번째 오류에서 중지를 설정하십시오.

pg_dump -t tablemame dbname |sed 's/SET row_security = off;//'|
psql -v ON_ERROR_STOP=1 -h hostname -d dbname

나는 지금 얻는다 :

오류 : "pg_catalog.tablename"을 만들 수있는 권한이 거부되었습니다. 세부 정보 : 시스템 카탈로그 수정이 현재 허용되지 않습니다.

Postgres 사용자 / 역할을 사용하는 것은 바람직하지 않지만이 특성에 대한 권한 문제가 없어야한다는 것을 이해하고 있습니다. 나는 이것이 일회성 작업이며 실제 서비스에 연결되지 않은 데이터 처리 장치 상자라는 점을 염두에두고 모든 제안에 개방되어 있으므로 이상적인 기업 데이터 액세스 정책보다 편의가 선호됩니다. 그렇게 말하면서, 올바르게 수행하는 방법을 이해하고 나중에 이것을 피하는 것이 좋습니다.

답변:


13

이는 pg_dump로 덤프하는 스키마가 대상 데이터베이스 / 시스템에 없을 때 발생하는 다소 모호한 오류 메시지로 인한 것으로 나타납니다. 다른 사람을 도울 수 있기를 바랍니다.


운 좋게도 나는 이것을 발견했다. '공개'스키마를 수동으로 만들었고 작동했습니다.
Robert Mikes

@RobertMikes. 기쁘다. 다소 모호한 오류입니다.
존 파월

감사합니다-운 좋게도 참여하기 전에 이것을 찾았습니다!
James Fry

+1. 이 문제는 방금 나에게 넘어졌다!
Jay Cummins
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.