postgresql - 如何处理 Hasura 中的复杂权限
问题描述
基础知识 - 我需要根据来自不同表的一些变量从列中返回数据(如果不允许访问,我要么返回列,要么返回 null)
我已经通过 postgres 中的自定义函数完成了我需要的工作,但问题是在 Hasura 函数中,它与实现 SETOF 的表/视图共享权限。
所以我必须允许访问表本身,结果我的函数中的权限是没有意义的,因为任何人都可以通过直接查询原始表来访问数据。
我目前的想法是,做我需要的唯一方法是创建一个远程模式并删除对原始表的访问。
但也许有一种方法可以不将某些表公开为 graphql 查询?如果我能做这样的事情 - 我只是隐藏我的桌子并只公开一个功能。
解决方案
远程模式似乎可以工作。
另一种选择是允许查询选项。
可以限制查询。看起来有点棘手,您需要一个应该允许的每个查询的精确副本(字段的顺序完全正确),但是如果您这样做,那么只有您明确列入白名单的查询将被接受。文档中的更多信息。
我对 postgres 权限不够熟悉,无法提供更好的想法......
推荐阅读
- dictionary - 在 Nim 中将表作为参数传递
- c# - C#:如何在异步方法中正确执行来自 Web 服务的自动生成的方法?
- machine-learning - 使用 KMeans 时为每个质心获取超过 2 个坐标
- rust - 我对通用函数和枚举有疑问
- python - 按名称获取不和谐的语音通道 ID
- css - 请帮助和建议悬停下划线菜单项
- c - 如何在运行时动态增加任何结构对象的大小?
- python - TypeError:“模块”对象不可调用,discord.py
- angular - 如何在 ngx-signaturepad 中修复“无法读取未定义的属性 'toDataURL'”
- javascript - 格式化 JSON 响应以构建 URL