mke*_*y33 1 postgresql permissions database-relations
核心问题:我有一个Django的网站是在抱怨的关系(表)不存在的,当我连接到它后试图运行所产生的SQL脚本pg_dump MY_DATABASE_NAME -cOx -E UTF8 > MY_SCRIPT_NAME.sql
在运行脚本之前,我可以连接并且一切正常。
后运行该脚本我生活在痛苦的世界,我已经试图通过检查和MY_DATABASE_NAME的改变所有权和使用表中所描述的各种方法,以减轻修改所有者的所有表中的PostgreSQL的同时
这似乎是我只能看到通过关系\dt
上MY_DATABASE_NAME仅作为postgres用户最早登陆我的服务器上,像这样经过:sudo su - postgres
。
当我在psql MY_DATABASE_NAME -U MY_NON_POSTGRES_USER
没有切换到 postgres 用户的情况下通过SSH 运行并运行时,\dt' results in a
没有找到任何关系的消息。
起初我认为权限或所有权是问题所在。我以服务器的 postgres 用户身份登录,并将 MY_DATABASE_NAME 及其所有表的所有者更改为 MY_NON_POSTGRES_USER。
结果和之前一样。我的 postgres 用户显示了关系,但以另一个角色登录会导致“未找到关系”消息,并且我的网站抱怨“关系 some_table 不存在”
为什么这会发生在我身上?
哇。我真的只是为我的问题写了一个TL;DR描述,然后立即意识到我的愚蠢:
尽管我已连接到 MY_DATABASE_NAME 并将所有表和数据库的所有权授予正确的用户,但我忘记了:
REVOKE ALL ON SCHEMA public FROM MY_NON_POSTGRES_USER;
GRANT ALL ON SCHEMA public TO MY_NON_POSTGRES_USER;
不再痛苦。世界又好了。
归档时间: |
|
查看次数: |
4966 次 |
最近记录: |