Apache zookeeper 带ACL的rmr节点

Apache zookeeper 带ACL的rmr节点,apache-zookeeper,Apache Zookeeper,我已经用acl创建了一个新的zknode,如下所示 [0]addauth digest username:password [1]create /testnode mydata auth:username:password:crdwa,world:anyone:r 这成功地创建了zknode,然后我退出了zkCli会话 现在,当我再次登录zkCli会话时。如果我没有将“addauth digest username:password”作为我的第一个命令,那么我就无法读写/testnode,这是

我已经用acl创建了一个新的zknode,如下所示

[0]addauth digest username:password
[1]create /testnode mydata auth:username:password:crdwa,world:anyone:r
这成功地创建了zknode,然后我退出了zkCli会话

现在,当我再次登录zkCli会话时。如果我没有将“addauth digest username:password”作为我的第一个命令,那么我就无法读写/testnode,这是意料之中的。但是我可以运行rmrdelete命令

[0]rmr /testnode -> this command deletes the zknode, which I do not want.

您在/testnode上定义的ACL限制访问,以便任何人都可以读取znode中的数据,但只有经过身份验证的用户才能在/testnode下创建子项、删除/testnode下的子项、将数据写入znode或管理znode权限。此ACL对删除/testnode没有任何限制,因为实际上这是对父目录的操作:删除/的子目录

上的Apache文档更详细地描述了权限设置:

ZooKeeper支持以下权限:

  • 创建:可以创建子节点
  • 读取:您可以从节点获取数据并列出其子节点
  • 写入:可以为节点设置数据
  • 删除:可以删除子节点
  • 管理:您可以设置权限

要限制删除子znode,您需要在其父节点上应用ACL,并且该ACL必须限制删除访问。

您在/testnode上定义的ACL限制访问,以便任何人都可以读取znode中的数据,但只有经过身份验证的用户才能在/testnode下创建子节点,在/testnode下删除子节点,将数据写入znode或管理znode权限。此ACL对删除/testnode没有任何限制,因为实际上这是对父目录的操作:删除/的子目录

上的Apache文档更详细地描述了权限设置:

ZooKeeper支持以下权限:

  • 创建:可以创建子节点
  • 读取:您可以从节点获取数据并列出其子节点
  • 写入:可以为节点设置数据
  • 删除:可以删除子节点
  • 管理:您可以设置权限
要限制删除子znode,您需要在其父级上应用ACL,并且该ACL必须限制删除访问