首页 > 解决方案 > 如何处理 Hasura 中的复杂权限

问题描述

基础知识 - 我需要根据来自不同表的一些变量从列中返回数据(如果不允许访问,我要么返回列,要么返回 null)

我已经通过 postgres 中的自定义函数完成了我需要的工作,但问题是在 Hasura 函数中,它与实现 SETOF 的表/视图共享权限。
所以我必须允许访问表本身,结果我的函数中的权限是没有意义的,因为任何人都可以通过直接查询原始表来访问数据。

我目前的想法是,做我需要的唯一方法是创建一个远程模式并删除对原始表的访问。

但也许有一种方法可以不将某些表公开为 graphql 查询?如果我能做这样的事情 - 我只是隐藏我的桌子并只公开一个功能。

标签: postgresqlpermissionshasura

解决方案


远程模式似乎可以工作。

另一种选择是允许查询选项。

可以限制查询。看起来有点棘手,您需要一个应该允许的每个查询的精确副本(字段的顺序完全正确),但是如果您这样做,那么只有您明确列入白名单的查询将被接受。文档中的更多信息

我对 postgres 权限不够熟悉,无法提供更好的想法......


推荐阅读