PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Django:разрешение е отказано при опит за достъп до база данни след възстановяване (миграция)

Оказва се, че трябва да предоставите изрично собственост върху всички обекти в базата данни на собственика след възстановяване. Собственикът не е суперпотребител. Не е достатъчно само да зададете собственика в момента на създаване на базата данни. Окончателното решение за миграцията е така:

на клиента:

pg_dump -f dump.sql -Ox database

на сървъра:

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

и след това да зададете привилегиите:

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;"

Обърнете внимание, че бихме могли да изпълним командата sql в psql конзолата, но тази форма лесно може да се вгради в скриптове и други подобни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо Postgres казва, че колоната не съществува?

  2. django.db.utils.ProgrammingError:връзката вече съществува

  3. Улесняване на управлението на производствена PostgreSQL база данни

  4. Django + Psycopg2:InterfaceError:поддържа се само протокол 3

  5. Защо заявката няма да запише в csv файл, докато изглежда нормално в конзолата на postgresql