Redis哨兵模式新建用户和修改口令

Redis哨兵模式新建用户和修改口令

新建用户

⚠️ 不管是通过ACL SETUSER命令直接在主节点创建的用户、还是通过修改主节点ACLFILE添加的用户,都不会同步到从节点。

通过写入ACLFILE创建(推荐)

查看主节点IP地址:

bash 复制代码
docker exec -it infra_redis_1 redis-cli -h 127.0.0.1 -p 26379 sentinel masters

#或者
docker exec -it infra_redis_1 redis-cli -p 6379 --user root -a xxxxxx info replication

查看ACL文件位置:

bash 复制代码
cat /opt/sre/redis/config/redis.conf | grep aclfile

cat /opt/sre/redis/config/users.acl 

在主节点ACL文件中添加一个全局读写用户:

bash 复制代码
user riskuser on >Abc123_bbc allkeys allchannels +@all -@admin -@dangerous +config|get +info +keys

在主节点ACL文件中添加一个全局只读用户:

bash 复制代码
user riskuser on >Abc123_bbc allkeys allchannels +@read +config|get +info

重新加载ACL文件(acl load):

bash 复制代码
#正常加载返回OK
docker exec -it infra_redis_1 redis-cli -p 6379 --user root -a xxxxxx acl load

连接验证:

bash 复制代码
docker exec -it infra_redis_1 redis-cli -p 6379 --user riskuser -a Abc123_bbc info replication

#或者
docker exec -it infra_redis_1 redis-cli -u redis://riskuser:Abc123_bbc@127.0.0.1:6379

通过ACL命令直接创建

查看主节点IP地址:

bash 复制代码
docker exec -it infra_redis_1 redis-cli -h 127.0.0.1 -p 26379 sentinel masters

#或者
docker exec -it infra_redis_1 redis-cli -p 6379 --user root -a xxxxxx info replication

直接通过ACL SETUSER命令创建用户:

bash 复制代码
docker exec -it infra_redis_1 redis-cli -p 6379 --user root -a xxxxxx 
127.0.0.1:6379> ACL SETUSER appuser on >Abc123_ssd allkeys allchannels +@read +config|get +info
OK
127.0.0.1:6379> ACL SAVE
OK
127.0.0.1:6379> quit

连接验证:

bash 复制代码
docker exec -it infra_redis_1 redis-cli -p 6379 --user appuser -a Abc123_ssd info replication

#或者
docker exec -it infra_redis_1 redis-cli -u redis://appuser:Abc123_ssd@127.0.0.1:6379

⚠️ 不管是通过ACL SETUSER命令直接在主节点创建的用户、还是通过修改主节点ACLFILE添加的用户,都不会同步到从节点。

以上在主节点创建用户的操作需要在所有从节点都手动再执行一次。

修改用户密码

Redis支持为同一个用户配置多个密码。

查看ACLFILE中配置的用户清单:

bash 复制代码
docker exec -it infra_redis_1 redis-cli -p 6379 --user root -a xxxxxx 
127.0.0.1:6379> ACL LIST

为指定用户添加一个新密码(旧密码不失效):

bash 复制代码
docker exec -it infra_redis_1 redis-cli -p 6379 --user root -a xxxxxx 
127.0.0.1:6379> ACL SETUSER appuser >Abc123_bbc
OK
127.0.0.1:6379> acl save
OK
127.0.0.1:6379> quit

为指定用户添加一个新密码(旧密码失效):

bash 复制代码
docker exec -it infra_redis_1 redis-cli -p 6379 --user root -a xxxxxx 
127.0.0.1:6379> ACL SETUSER appuser resetpass >Abc123_bbc
OK
127.0.0.1:6379> acl save
OK
127.0.0.1:6379> quit

⚠️ resetpass表示让指定用户的所有旧密码都失效。

修改用户权限

查看主节点IP地址:

bash 复制代码
docker exec -it infra_redis_1 redis-cli -h 127.0.0.1 -p 26379 sentinel masters

#或者
docker exec -it infra_redis_1 redis-cli -p 6379 --user root -a xxxxxx info replication

检查henry用户的权限清单:

bash 复制代码
[root@localhost ~]# docker exec -it infra_redis_1 redis-cli -p 6379 --user root -a xxxxxx 
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> acl list
127.0.0.1:6379> 
127.0.0.1:6379> acl getuser henry
 1) "flags"
 2) 1) "on"
    2) "sanitize-payload"
 3) "passwords"
 4) 1) "xxxxxxxxxxxxxxxxxxxxxxxxxx"
 5) "commands"
 6) "+@all -@admin -@dangerous +config|get +info +keys"
 7) "keys"
 8) "~*"
 9) "channels"
10) "&*"
11) "selectors"
12) (empty array)

为henry用户添加权限(加号表示添加权限):

bash 复制代码
127.0.0.1:6379> ACL SETUSER henry +restore +client|list +slowlog|get +latency|doctor +role +lastsave
OK
127.0.0.1:6379> ACL SAVE
OK
127.0.0.1:6379> acl getuser henry
 1) "flags"
 2) 1) "on"
    2) "sanitize-payload"
 3) "passwords"
 4) 1) "xxxxxxxxxxxxxxxxxxxxxxxxxx"
 5) "commands"
 6) "+@all -@admin -@dangerous +config|get +info +keys +restore +client|list +slowlog|get +latency|doctor +role +lastsave"
 7) "keys"
 8) "~*"
 9) "channels"
10) "&*"
11) "selectors"
12) (empty array)
相关推荐
二宝哥2 小时前
02.springboot项目对接国内模型实现对话聊天
数据库·人工智能·spring boot
秦时明月之君临天下2 小时前
MySQL purge 参数详解:innodb_purge_threads 与 innodb_purge_batch_size
数据库·mysql·1024程序员节
三垣网安2 小时前
某某大学心理健康教育平台弱口令及SQL注入漏洞
数据库·sql
打工仔折腾 AI3 小时前
AI Agent 工程化实战(二):5 分钟跑通 Deep Agent 并逐层拆解底层链路
java·数据库·人工智能·后端·python·langchain·ai agent 实战
Shaoshing3 小时前
MySQL视图
数据库
爱好曙光3 小时前
Redis Cluster 槽迁移:MOVED 重定向与拓扑刷新实战
redis·cluster·性能调优·moved·槽迁移
这个DBA有点耶4 小时前
测试全绿,上线三周数据没入账——那个95%的兼容度报告,漏掉的是边界
数据库·mysql·架构
1024奇点4 小时前
【仓颉语言入门 · 第二篇 第 15 课】
开发语言·数据库·ide·开源
疯狂学习GIS4 小时前
将谷歌地球引擎账号升级为Contributor与Partner层级的方法
java·数据库·人工智能