小编Rus*_*lpa的帖子

Postgresql 9.5 行级安全性中的角色和策略

按照这些帖子中的信息,我想使用角色系统和策略,即我系统中的每个用户都有一个 db 角色。我想对以下属性进行建模,但我无法提出角色层次结构。

考虑以下表格: companies(id, name) users(id, name) projects(id, name, company_id) users_companies(user_id, company_id, type) users_projects(user_id, project_id)

每个用户在公司内可以有不同的类型(管理员/员工/客户),并且取决于策略应该改变。因此,当用户通过身份验证时,我们知道他的 user_id 和 company_id 可以提供策略中所需的 id,例如 set local user_vars.user_id = 10 set local user_vars.company_id = 20 获得此权限所需的角色和策略是 什么

  • 您只能在公司表中看到您的公司行
  • 管理员可以看到他们公司的所有项目
  • 员工只能看到分配给他们的项目
  • 没有人可以看到/更改 users_companies 中的条目(这是在注册和触发器时以某种方式完成的)
  • 管理员可以看到 users_projects 条目,但只与他们公司中的用户和项目相关
  • 员工只能看到分配给他们的项目的 users_projects 条目
  • 管理员可以看到他们公司的所有用户
  • 员工可以看到他们公司中参与相同项目的用户

我正在寻找一个我可以建立的基本案例。我的主要问题是用户可以根据当前公司拥有不同的角色/类型

postgresql authorization role row-level-security postgresql-9.5

6
推荐指数
0
解决办法
420
查看次数