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

如何在Azure Cache for Redis PubSub中限制可发布的频道?

Redis PubSub 频道发布权限控制示例

Redis ACL 通过 &<pattern> 规则实现 PubSub 频道的访问权限控制,模式采用 glob 风格匹配,同时支持取反规则(在模式前添加 ! 符号)。以下是具体实现示例:

1. 仅允许发布到单个特定频道

创建用户并限制其只能向 order_updates 频道发布消息:

ACL SETUSER order_publisher ON >SecurePass123 +PUBLISH &order_updates
  • ON:启用该用户
  • >SecurePass123:设置登录密码
  • +PUBLISH:允许执行 PUBLISH 命令
  • &order_updates:限制仅能发布到匹配该模式的频道(此处为精确匹配)

2. 允许发布到一类频道(glob 通配符匹配)

允许用户向所有以 user_ 开头的频道发布消息:

ACL SETUSER user_publisher ON >UserPass456 +PUBLISH &user_*
  • &user_*:* 匹配任意字符序列,覆盖 user_profile、user_notifications 等所有符合前缀的频道

3. 禁止发布到特定频道(取反模式)

允许用户向所有频道发布,但禁止发布到 admin_alerts 敏感频道:

ACL SETUSER limited_publisher ON >LimitPass789 +PUBLISH &* &!admin_alerts
  • &*:允许匹配所有频道
  • &!admin_alerts:取反规则,排除该特定频道
  • 注意规则顺序:Redis ACL 按顺序匹配,需先设置允许范围,再添加排除规则,否则排除会被后续允许规则覆盖

4. 组合模式:允许一类频道,排除其中特定子频道

允许向 news_* 系列频道发布,但排除 news_sensitive 频道:

ACL SETUSER news_publisher ON >NewsPass012 +PUBLISH &news_* &!news_sensitive

验证权限

使用目标用户登录后,测试发布命令:

  • 允许的频道:PUBLISH order_updates "new order" 会返回成功(返回订阅者数量)
  • 禁止的频道:PUBLISH admin_alerts "test" 会返回 (error) NOPERM this user has no permissions to access one of the channels used as arguments

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 16:12:56