您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Django:还原(迁移)后尝试访问数据库时,权限被拒绝

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

注意,我们可以在psql控制台中运行sql命令,但是这种形式很容易嵌入到脚本等中。

Go 2022/1/1 18:22:19 有376人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶