权限控制(access control lists)
针对节点可以设置相关读写等权限,目的是为了保证数据安全性。
权限permissions 可以指定不同的权限访问以及角色
ACL的构成
zk的acl通过[achemepermissions] 来构成权限列表
acheme 代表采用的某种权限机制
id:允许访问的用户
permissions 权限组合字符串
acheme
world:world下只有一个id,即只有一个anyone用户,那么组合的写法就是world:anyone:[permissions]
getAcl:获取某个节点的acl权限
auth 代表认证登录,需要注册用户有权限就可以,形式是
auth:user:password:[permissions]
digest: 需要对密码加密才能访问,组合形式
digest:username:BASE64(SHA1(password)):[permissions]
[zk: localhost:2181(CONNECTED) 1] getAcl /test'world,'anyone: cdrwa
setAcl:设置某个节点的acl权限
addauth:输入认证授权信息,注册是输入明文密码登录,但是在zk的系统里,密码是以加密的形式存在的
[zk: localhost:2181(CONNECTED) 14] addauth digest baxiang:123456[zk: localhost:2181(CONNECTED) 15] setAcl /test/baxiang auth:baxiang:123456:cdrwacZxid = 0x1d8actime = Wed May 08 22:23:36 CST 2019mZxid = 0x1d8cmtime = Wed May 08 22:25:53 CST 2019pZxid = 0x1d8acversion = 0dataVersion = 2aclVersion = 1ephemeralOwner = 0x0dataLength = 6numChildren = 0
digest
[zk: localhost:2181(CONNECTED) 6] setAcl /test/acl digest:baxiang:/L9NGxtJUN3jM1TDU0z3ZGpJA0o=:cdracZxid = 0x1d91ctime = Wed May 08 23:02:42 CST 2019mZxid = 0x1d91mtime = Wed May 08 23:02:42 CST 2019pZxid = 0x1d91cversion = 0dataVersion = 0aclVersion = 1ephemeralOwner = 0x0dataLength = 3numChildren = 0
ip
[zk: localhost:2181(CONNECTED) 9] setAcl /test/ip ip:192.168.1.125:cdrwacZxid = 0x1d98ctime = Thu May 09 00:35:18 CST 2019mZxid = 0x1d98mtime = Thu May 09 00:35:18 CST 2019pZxid = 0x1d98cversion = 0dataVersion = 0aclVersion = 1ephemeralOwner = 0x0dataLength = 2numChildren = 0[zk: localhost:2181(CONNECTED) 10] getAcl /test/ip'ip,'192.168.1.125: cdrwa
