【发布时间】:2019-06-09 17:59:51
【问题描述】:
我使用以下命令备份源服务器上的数据库:
pg_dump --no-acl -h "server" --port "1234" -U "admin" --no-owner dbname > dbname_dump.sql
然后在新服务器上创建空数据库 newdb 并使用此命令恢复数据库
psql -U postgres -d newdb -f dbname_dump.sql
创建新用户,将所有权限分配给新数据库。当我与那个新用户连接到恢复的数据库时,当我想在公共模式内的任何表上进行选择时,我被拒绝访问。为什么?
【问题讨论】:
-
您可能没有授予表的权限。数据库不够用。很难说更多,因为您提供的信息很少。
-
可能,我使用了 GUI,这是 pgadmin 将在 DB 上运行以设置权限的查询
GRANT ALL ON DATABASE "newdb" TO "app-user";我希望这就是我所需要的。 -
谢谢劳伦兹!!您为我指明了正确的方向,我是 PG 新手,只使用 MSSQL,所以我希望事情会以同样的方式发生 :) 我错过了这个:
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA "public" TO "app-user"; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA "public" TO "app-user"; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA "migrations" TO "app-user"; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA "migrations" TO "app-user"; -
这对仍然遇到权限和所有权问题没有帮助。
标签: postgresql psql