我有 (2) 个 postgresql 数据库。我基本上使用相同的 pg_dump 导出文件在不同的机器上创建 (2) 个数据库。DDL 是相同的,但是,我no relations
在其中一个上收到了消息。search_path 设置正确。我相信我错过了 (2) 我的用户查看此架构的授权。Host2 上的设置是正确的。我只是不知道要使用哪个补助金。
信息:
mra_prd_99999=> \dt
No relations found.
主机1:
mra_prd_99999=> \z
Access privileges
Schema | Name | Type | Access privileges | Column access privileges
-------------------+---------------------------+-------+-------------------------------------+--------------------------
mra_dev_schm_99999 | abc_bounce_category | table | mra_prd_99999=arwdDxt/mra_prd_99999 |
主机2:
mra_prd_99999=> \z
Access privileges
Schema | Name | Type | Access privileges | Column access privileges
-------------------+---------------------------+-------+----------------------------------------------+--------------------------
mra_dev_schm_99999 | abc_bounce_category | table | mra_prd_99999=arwdDxt/mra_prd_99999 +|
| | | mra_prd_99999_user1=arwdDxt/mra_prd_99999+|
| | | mra_prd_99999_user2=r/mra_prd_99999 |
我的角色名和设置在 (1,2) 上都是相同的:
mra_prd_99999 | Create DB | {}
mra_prd_99999_user1 | | {}
mra_prd_99999_user2 | | {}
所有用户都将 search_path 设置为相同的模式:
mra_prd_99999=> show search_path;
search_path
-------------------
mra_dev_schm_99999
(1 row)
mra_prd_99999=> \dn
List of schemas
Name | Owner
-------------------+---------------
public | mra
mra_dev_schm_99999 | mra_prd_99999
(2 rows)
我需要运行哪些授权才能使 HOST1 的用户拥有与 HOST2 相同的访问权限?
你收到消息
因为用户没有
USAGE
模式的特权(既不是直接授予的,也不是通过public
伪角色授予的)。您可以通过比较\dn+ mra_dev_schm_99999
两个数据库来检查这一点。这是文档中关于此的内容:
此外,这两个似乎
mra_prd_99999_user
没有表级权限abc_bounce_category
- 你必须这样做如果你有更多的表有同样的问题,做