Autorizzazione negata per la creazione di "pg_catalog.tablename" durante pg_dump destinato a un'altra macchina


11

Sto cercando di scaricare alcune tabelle da un 9.5 beta 2 a un server 9.4.4. La forma del comando che sto usando è abbastanza standard:

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

Sto usando l'utente di Postgres, che mi rendo conto che probabilmente non è l'ideale, ma poiché si tratta di entrambe le caselle di elaborazione dei dati di sviluppo che utilizzo solo ed è rilevante per l'errore che segue. Inizialmente, ho ricevuto l'errore

ERRORE: parametro di configurazione non riconosciuto "row_security"

che è previsto in quanto questa funzionalità è nuova in 9.5, e, sì, mi rendo conto che non è consigliabile pg_dump tra diverse versioni di Postgres, ma, purtroppo inevitabile, dato che ho colpito un bug molto oscuro e devo spostare un grande quantità di dati statici una volta.

Quindi, usando questo orribile hack per rimuovere l'errore row_security e attivando stop al primo errore:

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

Ora ricevo:

ERRORE: autorizzazione negata per la creazione di "pg_catalog.tablename" DETTAGLIO: modifiche al catalogo di sistema attualmente non consentite

Sebbene possa essere indesiderabile utilizzare l'utente / il ruolo di Postgres, la mia comprensione è che non dovrebbero esserci problemi di autorizzazione di questo tipo. Sono aperto a qualsiasi suggerimento tenendo presente che si tratta di un'operazione una tantum e che si tratta di caselle di sviluppo di elaborazione dati non connesse ad alcun servizio live, quindi l'opportunità preferita rispetto alle politiche ideali di accesso ai dati aziendali. Detto questo, sarebbe bene capire come farlo correttamente ed evitarlo in futuro.

Risposte:


13

Ciò risulta dovuto a un messaggio di errore alquanto oscuro che si verifica quando lo schema da cui si esegue il dump con pg_dump non esiste sul database / computer di destinazione. Lascerò questa domanda, nella speranza che possa aiutare qualcun altro.


È successo anche a me, per fortuna l'ho trovato. Ho appena creato manualmente lo schema "pubblico" e ha funzionato.
Robert Mikes,

@RobertMikes. Felice di aiutare. È un errore piuttosto oscuro.
John Powell,

Grazie - per fortuna l'ho trovato prima di essere troppo coinvolto!
James Fry,

+1. Anche questo problema mi ha fatto inciampare!
Jay Cummins,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.