You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hasura v2.20.0对接SQL Server时自定义权限无_in运算符的疑问

问题解答

核心原因

SQL Server确实不支持Hasura中Postgres专属的_in运算符——这是Hasura针对不同数据库语法适配的差异导致的:Postgres原生支持数组类型的直接匹配,_in是Hasura封装的对应语法;但SQL Server的语法体系里没有类似的数组运算符,需要用原生SQL的方式处理数组匹配。

解决方案

要实现你需要的权限逻辑(用户只能访问DepartmentID匹配会话变量x-hasura-department-ids数组中任意值的行),可以在Hasura的行级权限自定义检查中使用sql()函数编写SQL Server原生语句,利用OPENJSON解析JSON格式的会话变量数组:

sql($$DepartmentID IN (SELECT value FROM OPENJSON({{x-hasura-department-ids}}))$$)

注意事项

  • 确保会话变量x-hasura-department-ids的格式是JSON数组,比如请求头中传入的值为:["1", "2", "3"]
  • 如果你的DepartmentID是数值类型,OPENJSON会自动转换类型匹配,无需额外处理

内容的提问来源于stack exchange,提问作者Syed Waqas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 11:04:53