Redis读写权限设置指南,如何分配用户访问权限,请选择适合方案

文章导读
结论/教程:使用Redis 6.0+的ACL功能设置读写权限。适合方案:为不同用户创建ACL规则,只读用户用on read deny;读写用户用on read write。示例代码:ACL SETUSER readonlyuser on >password ~* +get +keys +scan deny ACL SETUSER readwriteuser on >password ~
📋 目录
  1. A Redis官方文档ACL指南
  2. B CSDN博客Redis权限设置
  3. C 阿里云Redis权限配置教程
  4. D 腾讯云开发者社区
  5. E 知乎Redis权限最佳实践
  6. F 简书Redis读写分离权限
A A

结论/教程:使用Redis 6.0+的ACL功能设置读写权限。适合方案:为不同用户创建ACL规则,只读用户用on read deny;读写用户用on read write。示例代码:ACL SETUSER readonlyuser on >password ~* +get +keys +scan deny ACL SETUSER readwriteuser on >password ~* +get +set +del +keys +scan ACL LIST 查看规则,重启Redis应用。简单高效,推荐生产环境。

Redis官方文档ACL指南

Redis ACLs allow you to specify a username and a set of restrictions on the commands that group of users can run. The syntax is ACL SETUSER <username> [<rule> [...]] where rules can be of different types. For read-only access: ACL SETUSER readonly on >mypassword +@read deny @write. This user can execute read commands but not write commands.

CSDN博客Redis权限设置

Redis 6引入了ACL权限控制,可以创建多个用户,每个用户可以设置不同的访问权限。例如:ACL SETUSER alice on >password ~* +@read +@write +@list +@set。alice用户有读写权限。ACL SETUSER bob on >password ~keys:* +get deny表示bob只能get指定key,不能其他操作。

Redis读写权限设置指南,如何分配用户访问权限,请选择适合方案

阿里云Redis权限配置教程

在阿里云Redis中,开启ACL后,通过redis-cli执行:AUTH default 密码,然后ACL SETUSER myuser on >mypass ~test:* +get +set。分配读权限:ACL SETUSER reader on >pass ~test:* +@read。这样reader只能读test开头的key。重载ACL:ACL LOAD。

腾讯云开发者社区

适合方案选择:小型应用用密码认证,大型用ACL分用户。示例读写分离:ACL SETUSER writer on >writepass ~* +set +del +incr; ACL SETUSER reader on >readpass ~* +get +scan +keys。客户端连接时指定用户:redis-cli -u host -p port -a password --user reader。

知乎Redis权限最佳实践

推荐方案:生产环境用ACL文件持久化。编辑/etc/redis/users.acl文件,内容如:user default on >somepass ~* +@all。user readonly on nopass ~* +@read deny @dangerous。然后redis-server --user-file users.acl加载。分配权限时最小化原则,只给必要命令。

Redis读写权限设置指南,如何分配用户访问权限,请选择适合方案

简书Redis读写分离权限

步骤:1.升级Redis到6.0。2.redis-cli进入:ACL SETUSER rwuser on >pass123 ~* +get +set +hset +expire。3.只读:ACL SETUSER ruser on >pass123 ~* +get +exists +ttl。4.测试:AUTH rwuser pass123,然后SET test 1成功;用ruser则SET失败。这是简单可靠方案。

FAQ:
Q: Redis版本低于6怎么设置权限?
A: 用requirepass设置全局密码,或requirepass和rename-command禁写命令。
Q: ACL规则怎么持久化?
A: 用ACL FILE /path/to/users.acl,然后redis-server --aclfile /path/to/users.acl。
Q: 如何列出所有用户和权限?
A: 执行ACL LIST或ACL USERS。
Q: 只读用户能scan所有key吗?
A: 默认能,用~*通配,但可限制~*pattern +scan。
Q: 忘记密码怎么重置?
A: 用ACL SETUSER user on >newpass重设,或临时停ACL。