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

如何通过ACL规则允许/禁止RediSearch索引的访问?

解决RediSearch中特定用户仅能搜索特定键模式的ACL配置问题

问题根源在于:FT.SEARCH执行时会先访问搜索索引本身(比如示例中的mySearch),而你之前的ACL规则只授权了myKey*模式的键,用户没有访问索引键的权限,因此触发NOPERM错误。

解决方案

1. 直接授权索引键访问权限

修改ACL规则,将索引键加入用户允许访问的键模式中:

user myUser -@all +hget +ft.search ~myKey* ~mySearch

这样用户既能访问myKey*格式的数据键,也能访问名为mySearch的索引键,执行FT.SEARCH mySearch "myVal"就不会报错。

2. 批量管理索引的通用方案

如果需要创建多个同类型索引,建议给索引设置统一前缀(比如idx:),创建索引时:

FT.CREATE idx:mySearch ON HASH PREFIX 1 myKey SCHEMA myField TEXT

然后ACL规则用前缀匹配所有同类索引:

user myUser -@all +hget +ft.search ~myKey* ~idx:*

这种方式更灵活,后续新增同前缀的索引无需修改ACL。

关键说明

RediSearch的搜索命令权限校验分两步:

  • 首先校验用户对索引键的访问权限
  • 然后校验返回结果中数据键的权限(这一步会匹配你设置的~myKey*规则)
    因此必须同时授权索引键和目标数据键的权限,才能正常执行搜索。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 23:21:09