PostgreSQL用户列出特定数据库的权限

时间:2013-08-16 04:00:45

标签: postgresql yii privileges psql

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

这是创建它的pgsql语法。

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

所有这些天我都使用yii框架开发的应用程序来连接到超级用户的数据库。这是..用户' postgres '

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

enter image description here

我发现它是因为我为新创建的表设置了 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 没有对任何单个表的读/写访问权限。 所以我想检查数据库中哪个表没有权限,反之亦然。

请告诉我找到这个的方法。感谢。

1 个答案:

答案 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;