小编Obv*_*uit的帖子

允许用户仅修改具有行级安全性的 PostgreSQL 表中的某些(但不是全部)字段

我有一个 Postgres 表,如下所示:

用户身份 电子邮件地址 角色
68f00c4c-5dff-4886-a584-d44a23e47160 大卫 大卫@example.com 行政人员
3ed36117-e632-4b8b-b672-0b29f5f8b5c9 马丁 休斯 martin@example.com 顾客

我想写一份政策:

  • 允许客户在自己的记录中更新first_name,last_name和,但显然不是他们的或(因为这将授予客户管理权限)email_addressuser_idrole
  • 允许管理员编辑除user_id所有记录之外的所有字段(包括更改其他用户的角色)。

我是 Postgres 的新手,我正在尝试掌握编写行级安全策略的技巧。我很难在 SQL 中阐明更复杂的策略,因此如果有人能为我的应用程序中的场景提供示例,我将不胜感激。

我正在使用 Supabase,它有一个auth.uid()函数(示例),其中包含 JSON Web 令牌中的用户 ID。

postgresql row-level-security

7
推荐指数
2
解决办法
2540
查看次数

标签 统计

postgresql ×1

row-level-security ×1