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)
相关推荐
Decay__2 小时前
VMware 安装 SQL Server 双节点 AlwaysOn 可用性组教程 —— WSFC、AG 与侦听器完整部署(系列核心篇)
运维·数据库·sql·mysql·架构
茶栀(*´I`*)3 小时前
SQL 性能分析:从慢查询日志到执行计划的完整定位方法
数据库·sql
艺杯羹3 小时前
1Panel 装好后 ufw 仍是 inactive:一次服务器安全盲区复盘
服务器·数据库·安全·网络安全·系统架构·实战·1panel
code2cat4 小时前
【随笔】MCP工具重试:任务已经创建,响应丢了怎么办
数据库·mcp
Star(up up up)5 小时前
Redis Windows 安装教程:使用Windows 的 Redis 压缩包
redis·笔记·学习·程序人生·云原生·学习方法·改行学it
wuyk5556 小时前
Spider-第10讲-SQLite持久化与去重
数据库·爬虫·sqlite
乌暮7 小时前
Spring AOP 与 Spring 事务:用大白话彻底理解原理与实践
java·数据库·spring boot·后端·sql·学习·spring
小此方8 小时前
Re:Mysql数据库基础篇(十二):什么是事务、事务解决了什么问题、事务的四大属性、事务的操作方式
数据库·mysql
flash俊杰9 小时前
v0.5-01 让桌面 AI 助手记得住:预算组装、递归摘要、长期记忆与评估基线
数据库·安全·架构
2501_933923259 小时前
redis:string类型常见命令
数据库·redis·缓存