Redis ACL


一、ACL是什么?

Redis ACL(Access Control List)是用于管理 Redis 数据库访问权限的功能,它在 Redis 6.0 版本中引入。Redis ACL 允许你创建用户,并分配访问权限。

二、ACL如何设置

编辑 Redis 配置文件 redis.conf ,注释 requirepass ,直接配置 ACL 规则,或者建立独立文件 aclfile 放置 ACL 规则。

# requirepass foobared
# user default on nopass ~* &* +@all
aclfile "/etc/redis/users.acl"

三、ACL规则

user <username> on <password>  +<command> -<command> +@<category> -@<category> ~<pattern> 

规则是顺序加载并覆盖

  • <username>:定义用户名
  • on:启用该用户,off 为禁用。
  • +<command> :允许执行特定命令。
  • - <command> :禁止执行特定命令。
  • +@<category>:添加该类别中的所有命令,有效类别为 @admin,@set ,@sortedset,…以此类推,通过调用 ACL CAT 命令查看完整列表。特殊类别 @all 表示所有命令,包括服务器中当前存在的命令,以及将来通过模块加载的命令。
  • -@<category>:类似于+@<category>,但是禁用这些命令。
  • ~<pattern>:定义用户可以访问的键。例如 ~* 可以访问所有键。

以下是一些示例 ACL 规则:

  1. 允许用户 myuser 执行 GET 命令,但不允许执行 SET 命令
user myuser on -set +get
  1. 允许用户 default 执行所有命令,但不能执行 dangerous 类的命令
user default on nopass ~* +@all -@dangerous

四、 ACL的重要命令

ACL HELP: 查看help文档。
AUTH: 登入或切换用户,用法如下:

auth <username> <password>

ACL SETUSER: 用于创建或修改用户并分配权限,用法如下:

ACL SETUSER username on >password +<command> -<command> +@<category> -@<category> ~<pattern> 

#用户 link ,活跃状态 on ,密码 123456 ,允许对所有 sai 开头的 key 使用 get 和set 命令

ACL SETUSER link on >123456 ~sai* +get +set

ACL DELUSER: 用于删除用户,用法如下:

ACL DELUSER username 

ACL LIST: 用于列出当前的 ACL 用户和规则。
ACL GETUSER: 用于获取特定用户的 ACL 规则。
ACL CAT: 查看命令类别。
ACL LOG: 用于查看 ACL 日志。
ACL SAVE: 将 ACL 配置动态保存到 ACLFILE 文件中。
ACL LOAD: 从 ACLFILE 文件中动态加载 ACL 配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值