创建一个postgres用户

时间:2014-11-19 13:29:27

标签: postgresql postgresql-9.3

我想在我的网络应用程序中使用postgres中的典型用户。

  1. Web应用程序将需要访问所有表。
  2. 用户应该能够读/写所有表(选择,更新,删除,插入)
  3. 所有表都属于公共架构

    创建此用户的最佳做法是什么?

    数据库名称:acmeinc user:acmeuser

    我到目前为止尝试了这个,我甚至无法更新表格(关系上的权限错误):

    create user acmeuser
    grant all privileges on database acmeinc to acmeuser
    alter schema public owner to acmeuser
    
    ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO acmeuser
    

    更新

    我正在运行以上内容:

    psql acmeinc -c "create user acmeuser"
    

    我应该创建一个角色,然后将用户acmeuser与角色相关联吗?

1 个答案:

答案 0 :(得分:2)

我认为你的问题源于围绕GRANT的两个误解:

  • 授予数据库不授予其中的表,它只授予其自身对数据库对象的权限;以及

  • ALTER DEFAULT PRIVILEGES仅影响在运行后创建的表,它不会更改现有表。

您想要GRANT ... ON ALL TABLES IN SCHEMA ...