0

我在 pgAdmin 的登录角色下创建了一个用户。用户名是“ myApp ”。

这是创建它的 pgsql 语法。

CREATE ROLE myApp LOGIN
  ENCRYPTED PASSWORD 'md58e0b379fc6e92422518682611bcf2d42'
  NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;

这些天来,我的应用程序由 yii 框架开发,最终以超级用户连接到数据库。这是..用户' postgres '

但是最近发布后我开始收到如下错误

在此处输入图像描述

我发现它是因为我已经为新创建的表设置了myApp用户角色的权限,但错过了对序列执行相同操作,所以我编写了以下脚本来解决..

GRANT ALL ON TABLE css_ataps_client_outgoing_call_dates_id_seq TO myAppAdmin;
GRANT SELECT, UPDATE ON TABLE css_ataps_client_outgoing_call_dates_id_seq TO myApp;

现在我需要让我的应用程序使用与我的生产应用程序相同的登录名连接到数据库,即myApp但不是postgres

但不幸的是,除非我使用postgres用户,否则它不起作用。我在尝试与myApp用户连接时遇到的错误没什么。甚至没有记录在日志中。所以我可以确认登录详细信息是相同的并且它可以工作,问题可能是用户myApp没有对任何单个表的读/写访问权限。所以我想检查它没有权限的数据库中的哪个表,反之亦然。

请告诉我一个方法来找出这个。谢谢。

4

1 回答 1

1

这会做。试着让我知道。

GRANT ALL ON DATABASE <ur database name> TO myApp; <- not this

试试这个查询..!

GRANT SELECT,UPDATE,INSERT,DELETE ON ALL TABLES IN SCHEMA public TO myApp;
于 2013-08-16T04:52:07.027 回答