文章目录
1. 权限控制ACL(Access Control List)
##1.1 权限特性
- ZooKeeper 的权限控制是基于每个 znode 节点的,需要对每个节点设置权限
- 每个 znode 支持设置多种权限控制方案和多个权限
- 子节点不会继承父节点的权限,客户端无权访问某节点,但可能可以访问它的子节点
1.2 权限类型
权限 | ACL简写 | 描述 |
---|---|---|
CREATE | c | 创建子节点 you can create a child node |
DELETE | d | 删除子节点you can delete a child node(除了/ 都可以删) |
READ | r | 读取节点数据及显示子节点列表 you can get data from a node and list its children. |
WRITE | w | 设置节点数据 you can set data for a node |
ADMIN | a | 设置节点访问控制列表权限 you can set permissions |
##1.3 访问控制列表方案(ACL Schemes)
ZooKeeper 内置了一些权限控制方案,可以用以下方案为每个节点设置权限:
方案 | 描述 |
---|---|
world | anyone,所有人拥有所有权限(默认) |
ip | 用 IP 地址认证,可以用网段表示范围。 |
auth | 用“用户名:密码”方式认证 |
digest | 用“用户名:密码”+ 摘要 方式认证 |
super | 超级管理员 |
x509 | X.509是密码学里公钥证书的格式标准 |
权限相关命令
命令 | 使用方式 | 描述 |
---|---|---|
getAcl | getAcl [-s] path | 读取 ACL 权限 |
setAcl | setAcl [-s] [-v version] [-R] path acl | 设置 ACL 权限 |
addauth | addauth scheme auth | 添加认证用户 |
setAcl
-
-s:设置权限并返回stat
-
-v:对某数据版本进行权限设置版本错误,则失败)
-
-R:递归对所有