我在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 没有对任何单个表的读/写访问权限。 所以我想检查数据库中哪个表没有权限,反之亦然。
请告诉我找到这个的方法。感谢。
答案 0 :(得分: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;