代码之家  ›  专栏  ›  技术社区  ›  Anton Belev

PostgreSQL-API用户帐户的正确db权限

  •  1
  • Anton Belev  · 技术社区  · 7 年前

    我有一个REST服务,它将连接到PostgreSQL数据库。应用程序将仅执行插入/更新/删除操作。我想确保我给了API帐户正确的权限,只执行这些类型的命令,而不执行DROP和其他危险的操作。这类帐户的最佳实践是什么?您能给我一些SQL示例或说明如何在pgAdmin 4中实现这一点吗。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Eelke    7 年前

    当您想要限制访问权限时,通常明智的做法是首先清除public可能拥有的所有权限。除了作为默认模式的名称之外,public也是一个特殊角色,它包括所有角色,因此如果允许public做一些事情,那么每个人都可以做。

    REVOKE ALL ON ALL TABLES IN SCHEMA public FROM public;
    REVOKE ALL ON SCHEMA public FROM public;
    

    GRANT USAGE ON SCHEMA public TO api_user;
    GRANT SELECT INSERT UPDATE DELETE ON ALL TABLES IN SCHEMA public TO api_user;
    

    如果除了公共模式之外还有其他模式,请重复这些模式。