目前,我正在使用Postgraphile,我需要在数据/字段级别强制执行权限。
例如,我有一个carmodel表,我的查询如下:
{
carmodel
{
id
name
description
}
}在这个表中,我有I (1 = AUDI,2= GM,3= BMW)当前用户(关于角色/索赔)只允许查看(1=AUDI/3=BMW)
是否有一种基于字段数据强制权限的方法?是否只返回对用户权限进行筛选的数据?
发布于 2019-11-25 10:08:41
是的;行级安全性可以以声明方式定义。类似于:
create policy audi_bmw on carmodel for select using (
id in (1, 3)
);不过,我猜这个权限来自另一个表;所以它可能更像是:
create policy audi_bmw on carmodel for select using (
id in (
select car_model_id
from user_carmodel_permissions
where user_id = current_user_id()
)
);假设您已经有了一个current_user_id函数,如下所示:
create function current_user_id() returns int as $$
select nullif(current_setting('jwt.claims.user_id', true), '')::int;
$$ language sql stable;看看我们的行级安全备忘表。
https://stackoverflow.com/questions/59027023
复制相似问题