文章目录
- zookeeper节点的状态和权限控制
- zlc简介
- 权限模式`schema`
- 授权对象`ID`
- 权限`permissions`
- 实例
- ls
- stat
- setquota
zookeeper节点的状态和权限控制
zlc简介
acl(access controller lists)由三部分组成schema
、ID
和permissions
schema
表示某种权限机制world、ip、auth、digestID
表示允许访问的用户permissions
是权限组合字符串——crwda,即create、read、write、delete、admin
在zookeeper中,就是通过schema、ID和permissions指定一个结点的权限信息。
权限模式schema
在zookeeper,权限模式schema
有两种和类型,分别是ip和digest
- ip模式是基于ip白名单的方式指定某个服务器具有哪些权限
- digest模式是基于用户名和密码的方式指定哪个人具有声明权限
授权对象ID
- 在ip权限模式下,ID就是具体的IP地址字符串。192.168.1.0/16:表示匹配前16个bit的ip段
- 在digest权限模式下,ID是username:Base64(Sha1(username:password))字符串
权限permissions
在zookeeper中,有create
、read
、write
、delete
、admin
五种权限类型
实例
create -s -e /test/test test01_data ip:192.168.100.100:crwda
即:创建一个临时的顺序节点,路径为/test/test,节点数据为test01_data,并指定ip为192.168.100.100的服务器有crwda(create、read、write、delete、admin)的权限
create /test/test02 test02_data digest:Psych:666:r
创建一个持久节点,路径为/test/test02,节点数据为test02_data,并指定test的用户有read的权限
ls
查看某目录下的子节点
ls /
查看根目录下的子节点
stat
查询某个节点的详细信息
stat /zookeeper
- cZxid:数据节点创建时的事务ID
- ctime:数据节点创建的时间
- mZxid:数据节点最后一次更新时的事务ID
- mtime:数据节点最后一次更新时的时间
- pZxid:数据节点的子节点最后一次修改时的事务ID,新增和删除子节点都会影响这个值,修改子节点数据则不会影响这个值
- cversion:子节点的版本号
- dataVersion:节点数据的版本号
- aclVersion:节点ACL的版本号
- ephemeralOwner:如果节点是临时节点,则表示创建该节点的会话的SessionID;如果节点是持久节点,则属性值为0
- dataLength:数据内容的长度
- numChildren:数据节点的子节点个数
setquota
setquota -n|-b val path:
给该节点分配配额,超过配额以后只会日志报错
- n:(可选)表示子节点的最大个数
- b:(可选)表示数据值的最大长度
- val:子节点最大个数或数据值的最大长度
- path:节点路径
同样的,也有删除配额
delquota [-n|-b|-N|-B] path