需求:为Redis添加一个新的用户,并设置用户的密码权限等信息
ps:网上看了这么多一篇想要的都没有>_<
ACL SETUSER newuser on >newpassword allcommands allkeys
newuser
: 新用户名。on
: 启用该用户。>newpassword
: 设置用户密码,>
需要被保留。allcommands
: 允许该用户执行所有命令。allkeys
: 允许该用户访问所有键。
命令权限
+<command>
: 允许用户执行指定的命令。例如,+get
允许用户执行GET
命令。+@<category>
: 允许用户执行某个类别中的所有命令。例如,+@string
允许用户执行所有字符串命令。allcommands
: 允许用户执行所有命令。
也可以通过 -<command>
或 -@<category>
来禁止用户执行特定命令或类别中的命令。
键权限
~<pattern>
: 允许用户访问符合指定模式的键。例如,~user:*
允许用户访问所有以user:
开头的键。allkeys
: 允许用户访问所有键。
也可以通过 !<pattern>
来禁止用户访问特定模式的键。
示例
创建一个用户 readonly
,该用户只能执行读取操作(如 GET
和 MGET
)并且只能访问以 data:
开头的键。
ACL SETUSER readonly on >readonlypassword +get +mget ~data:*
- 创建一个只能读取数据的用户:
ACL SETUSER readonly on >readonlypassword +get +mget +hget +hgetall +@read ~data:*
- 创建一个只能写入数据的用户:
ACL SETUSER writeonly on >writeonlypassword +set +mset +hset +@write ~data:*
- 创建一个只能管理服务器的管理员用户:
ACL SETUSER admin on >adminpassword +@admin
- 禁止用户执行删除操作:
ACL SETUSER nodata on >nodatauser +@allcommands -del -flushall
- 限制用户只能访问特定模式的键:
ACL SETUSER limiteduser on >limitedpassword +@allcommands ~app:* ~cache:*