【问题标题】:PostgreSQL user's privileges listing for a particular databasePostgreSQL 用户对特定数据库的权限列表
【发布时间】:2013-08-16 04:00:45
【问题描述】:

我在 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 没有对任何单个表的读/写访问权限。 所以我想检查数据库中哪个表没有权限,反之亦然。

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

【问题讨论】:

    标签: postgresql yii privileges psql


    【解决方案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;
    

    【讨论】:

    • GRANT ALL ON DATABASE myDatabaseName TO myApp;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 2012-02-06
    • 2014-05-18
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多