redis多用户管理

最近在学redis,由于笔者是学运维的,所以推荐学习运维的小伙伴参考,希望对大家有帮助!

redis运维上篇:http://t.csdnimg.cn/MfPud

redis运维下篇:http://t.csdnimg.cn/83sQ1

复制代码
从redis6开始,默认用户名为default,之前的版本不存在用户名

列出所有用户,默认只有default为超级用户,拥有所有的权限
>acl list
"user default on #9cd9ab402f4115ed9921a7e4f7fc89330c8fe9283a8b1cdef203f7a7e622c68f ~* &* +@all"

>acl getuser default  #查看default用户的相关信息
1) "flags"
 1) "on"
    2) "allkeys"
    3) "allchannels"
    4) "allcommands"
 3) "passwords"


>acl cat  #查看权限
1) "keyspace"
 2) "read"
 3) "write"
 4) "set"
 5) "sortedset"
 6) "list"
 7) "hash"

实例1:创建test用户只给一个get命令权限、读权限、并且只能get是name开头的key:name*

复制代码
127.0.0.1:6379> set name1 n1
OK
127.0.0.1:6379> set name2 n2
OK
127.0.0.1:6379> set name3 n3
OK
127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> set k2 v2
OK
127.0.0.1:6379> acl setuser test on >testpwd ~name* +get		#创建test用户,密码:testpwd 只对name开头的有get权限
OK
127.0.0.1:6379> acl setuser test on >testpwd ~name* +@read	#增加read权限
OK

登录验证:
[root@bogon ~]# redis-cli --user test --pass testpwd    #test用户登录
127.0.0.1:6379> get name1
"n1"
127.0.0.1:6379> get name2
"n2"
127.0.0.1:6379> get name3
"n3"
127.0.0.1:6379> get k1
(error) NOPERM this user has no permissions to access one of the keys used as arguments
127.0.0.1:6379> get k2
(error) NOPERM this user has no permissions to access one of the keys used as arguments

实例2:创建用户赋值给所有权限

复制代码
127.0.0.1:6379> acl setuser test1 on >test1pwd ~* +@all	#给用户test1添加所有权限
OK
127.0.0.1:6379> acl getuser test1	#查看test1的权限
[root@bogon ~]# redis-cli
验证权限
127.0.0.1:6379> auth test1 test1pwd
OK
127.0.0.1:6379> get k1
"v1"

实例3:去除config命令后的权限

复制代码
127.0.0.1:6379> acl setuser test2 on >test2pwd ~* +@all -config		#去除test2的config权限
OK
验证权限
127.0.0.1:6379> auth test2 test2pwd
OK
127.0.0.1:6379> config get requirepass	#获取不到config权限
(error) NOPERM this user has no permissions to run the 'config' command or its subcommand
127.0.0.1:6379> keys *
1) "name3"
2) "name2"
3) "name1"
4) "k2"
5) "k1"

实例4:创建一个用户,只给info和monitor权限

复制代码
127.0.0.1:6379> acl setuser monitor on >monitorpwd ~* +info +monitor
OK
权限验证
127.0.0.1:6379> auth monitor monitorpwd
OK
127.0.0.1:6379> keys *
(error) NOPERM this user has no permissions to run the 'keys' command or its subcommand
127.0.0.1:6379> get k1
(error) NOPERM this user has no permissions to run the 'get' command or its subcommand
127.0.0.1:6379> info
# Server
redis_version:6.2.1
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:c9de016bf71cd57f
redis_mode:standalone

命令小结:
列出所有用户:
>acl list

删除用户:
>acl deluser test1

让命令永久生效
>config rewrite 
相关推荐
java_logo8 小时前
Apache Doris Docker 部署指南:实时分析数据库实战
数据库·docker·apache·doris·apache doris·轩辕镜像·docker部署doris
广州灵眸科技有限公司16 小时前
xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-Nano
数据库·windows·科技
憧憬成为web高手18 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
段一凡-华北理工大学19 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
二宝哥19 小时前
CentOS 7.9 系统下 Redis 5.0.4 单机安装与源码编译安装指南
redis·centos
oradh21 小时前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
z1234567898621 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
程序猿DD1 天前
一个 API Key,统一调用大模型、生图和联网搜索
数据库·网关
java_logo1 天前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程
王维同学1 天前
[原创][Windows C++]LSA 认证、安全与通知包的注册表枚举
c++·windows·安全