首页 > 解决方案 > 如何使用 acl 限制对 redis pubsub 中某些主题的访问?

问题描述

我希望某些客户端无法订阅 Redis pubsub 中的某些主题。redis acl可以吗?

标签: redisaclpublish-subscribeaccess-control

解决方案


是的,这就是您可以使用 ACL 将客户端仅限于“foo”主题的方式:

$ redis-cli
127.0.0.1:6379> ACL SETUSER limitedpubsub on nopass -@all +subscribe|foo
OK
127.0.0.1:6379> AUTH limitedpubsub ""
OK
127.0.0.1:6379> SUBSCRIBE bar
Reading messages... (press Ctrl-C to quit)
(error) NOPERM this user has no permissions to run the 'subscribe' command or its subcommand
^C
$ redis-cli
127.0.0.1:6379> AUTH limitedpubsub ""
OK
127.0.0.1:6379> SUBSCRIBE foo
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "foo"
3) (integer) 1

推荐阅读