#在redis里增加aclfile
aclfile /usr/local/etc/redis/users.acl
touch `pwd`/conf/users.acl
docker run -itd -v `pwd`/conf:/usr/local/etc/redis --name redis redis:6.2.3 redis-server /usr/local/etc/redis/redis.conf
#设置帐号
ACL SETUSER xbzeng on >redis12345 +@all
#删除帐号
ACL DELUSER testuser
#关停帐号默认帐号
ACL SETUSER default off
#查看所有帐号
ACL LIST
#查看当时用户
ACL whoami
#切换用户
auth xbzeng redis12345
+<command> 将 <command> 命令添加到用户可调用的命令列表中
-<command> 从可调用的命令列表中移除 <command> 命令
+@<category> 允许用户调用 <category> 分类中的所有命令(可通过 ACL CAT 命令查看完成分类列表)
-@<category> 禁止用户调用 <category> 分类中的所有命令
+<command>|subcommand 允许使用原本禁用的特定类别下的特定子命令
+@all 允许调用所有命令,与使用 allcommands 效果相同。包括当前存在的命令以及将来通过模块加载的命令
-@all 禁止调用所有命令
场景说明
创建DBA管理账号
ACL SETUSER dba on #6d0ac515af9df81653ed0aa3ffa692663c3f556079791e2f00a4578990da66f3 allkeys +@all
创建读写账号
ACL SETUSER readwrite on >password allkeys -@all +@read +@write
创建只读账号
ACL SETUSER readonly on >password allkeys -@all +@read
创建只写账号
ACL SETUSER write_user on >password allkeys -@all +@write
创建复制账号
ACL SETUSER replica-user >password -@all +psync +replconf +ping on
创建哨兵账号
ACL SETUSER sentinel-user >password -@all +client +subscribe +publish +ping +info +multi +slaveof +config +client +exec on
创建监控账号
ACL SETUSER monitor on >password +monitor +info
创建指定key、有指定类型权限的账号
– 指定对h开头的hash类型的key有权限
ACL SETUSER ops_user on >password ~h* +@hash
其中key的模式是正则匹配,需要~开头,针对权限则是hash的类,其权限可以通过ACL CAT hash查看。
注意:以上操作完只有需要执行ACL SAVE。不然重置之后用户信息全部都清空了。
ACL SETUSER monitor on >Monitor#2O22 +monitor +info #监控帐号
ACL SAVE #保存
CONFIG REWRITE #配置文件重写到文件中
哨兵设置密码
ACL SETUSER default on >password +@all
SENTINEL flushconfig
https://www.shuzhiduo.com/A/o75NBGrK5W/
节点监控
ACL SETUSER monitor +client +ping +info +config|get +cluster|info +slowlog +latency +memory +select +get +scan +xinfo +type +pfcount +strlen +llen +scard +zcard +hlen +xlen +eval allkeys on >{{redis_password}}Monitor
CONFIG REWRITE
哨兵监控
ACL SETUSER monitor +client +ping +info allkeys on >{{redis_password}}Monitor
SENTINEL flushconfig