redis配置权限

437 阅读2分钟

前言

在Rdis6.0版本以下,只能使用requirepass参数给default用户配置登录密码,Redis6.x版本以上,提供了配置acl权限模式,以及用户名,让可以配置用户名,并且给每个用户名并且给每个用户单独设置命令权限和数据权限

redis官网

 https://redis.io/docs/management/security/acl/#acl-rules

acl配置

acl命令

查看命令帮助
acl help

使用该命令可以查看acl的命令如何使用

image.png

查看当前用户
acl whoami

使用该命令查看当前登录的用户名是什么

image.png

redis提供default默认用户

查看所有用户
acl users

使用该命令可以查看该实例配置了多少用户名

image.png

查看命令类别
acl cat

查看命令类别分别有什么

image.png

创建用户
  ACL SETUSER hello on >123456 ~hello* +get +set

创建一个hello用户,密码为123456,并对所有heloo开头的键值具有get和set权限

使用非hello开头的键值会报没权限

image.png

创建一个用户有所有权限

 ACL SETUSER hello1 on >123456 ~* +@all
查看用户的ACL权限
acl getuser hello1
 

image.png

删除指定的用户
  acl deluser <username>
  
将acl权限持久化到磁盘的aclfile中
 acl save
 

使用该命令将acl配置持久化到配置文件中,否则重启redis实例配置会消失

读取aclfile中的权限加载至redis服务中
 acl load
 

redis额外命令

切换用户名
auth username password

username为用户名,password为密码

进入客户端
redis-cli

可以指定对应的redis.conf

redis-server ./redis.conf

./为redis.conf的当前放置路径

aclfile配置说明

redis配置acl最好启用aclfile,否则重启redis会失效

在redis.conf中配置

aclfile /var/run/redis/users.acl

备注:不能先启用该配置,安装完redis之后,才在redis.conf中配置该配置,否则会报文件找不到

redis.conf配置参考

 https://redis.io/docs/management/config/

users.acl路径自定义,文件可读可写可操作就行,否则写入会报没权限

Opening temp ACL file for ACL SAVE: Permission denied

本文是放在/var/run/redis路径下,使用命令

使用命令进入到/var/run目录

 cd /var/run

创建redis文件夹

mkdir redis

创建users.acl并赋予权限

 touch /var/run/redis/users.acl && chmod -R 777 /var/run/redis
 

然后重启redis实例就可以了

总结

Redis6.x版本以上带来的新特性ACL权限控制,为我们解决了权限控制问题,使更好的使用redis操作,但是具体用不用,看个人