Eu tenho (2) bancos de dados postgresql. Eu basicamente usei o mesmo arquivo de exportação pg_dump para criar os (2) db's em máquinas diferentes. O DDL é o mesmo, porém, estou recebendo a no relations
mensagem em um deles. O search_path está definido corretamente. Acredito que estou perdendo uma concessão para (2) dos meus usuários verem este esquema. As configurações estão corretas no Host2. Só não sei qual concessão usar.
Mensagem:
mra_prd_99999=> \dt
No relations found.
HOST1:
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 |
HOST2:
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 |
Meus nomes de função e configurações são idênticos em ambos (1,2):
mra_prd_99999 | Create DB | {}
mra_prd_99999_user1 | | {}
mra_prd_99999_user2 | | {}
Todos os usuários têm o search_path definido para o mesmo esquema:
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)
Quais concessões eu preciso executar para que os usuários do HOST1 tenham os mesmos privilégios de acesso do HOST2?
Você entendeu a mensagem
porque o usuário não tem o
USAGE
privilégio no esquema (nem concedido diretamente, nem através dopublic
pseudorole). Você pode verificar isso comparando\dn+ mra_dev_schm_99999
os dois bancos de dados.Isto é o que a documentação diz sobre isso:
Além disso, parece que os dois
mra_prd_99999_user
s não têm privilégios de nível de tabela ativadosabc_bounce_category
- você deve fazerSe você tiver mais tabelas com o mesmo problema, faça