sql >> Database >  >> RDS >> PostgreSQL

Django:toestemming geweigerd bij toegang tot database na herstel (migratie)

Het blijkt dat u na het terugzetten het expliciete eigendom van alle objecten in de database aan de eigenaar moet verlenen. De eigenaar is geen superuser. Het is niet voldoende om alleen de eigenaar in te stellen op het moment dat de database wordt gemaakt. De uiteindelijke oplossing voor migratie gaat als volgt:

op de klant:

pg_dump -f dump.sql -Ox database

op de server:

su postgres    
dropdb database
createdb database -O user
psql database -f dump.sql

en vervolgens om de privileges in te stellen:

psql database -c "GRANT ALL ON ALL TABLES IN SCHEMA public to user;"
psql database -c "GRANT ALL ON ALL SEQUENCES IN SCHEMA public to user;"
psql database -c "GRANT ALL ON ALL FUNCTIONS IN SCHEMA public to user;"

Merk op dat we de opdracht sql in de psql-console hadden kunnen uitvoeren, maar dit formulier kan gemakkelijk worden ingesloten in scripts en dergelijke.



  1. Postgres NIET in array

  2. SQL-BEPERKINGEN

  3. Kan geen verbinding maken met lokale MySQL-server via socket '/var/mysql/mysql.sock' (38)

  4. Ontdek waarom een ​​e-mail niet kon worden verzonden in SQL Server (T-SQL)