在HBase 1.2中,我有:
这里"证明" testShellUser 的授权和特权:
hbase(main):001:0> get_auths 'testShellUser'
testShell_visY
0 row(s) in 1.3290 seconds
hbase(main):003:0> user_permission 'testShellTable'
User Namespace,Table,Family,Qualifier:Permission
testShellUser default,testShellTable,,: [Permission: actions=READ,WRITE]
hbase default,testShellTable,,: [Permission: actions=READ,WRITE,EXEC,CREATE,ADMIN]
0.2210秒内的2行
以 testShellUser 身份登录HBase shell后,我可以看到该单元格:
hbase(main):009:0> scan 'testShellTable'
ROW COLUMN+CELL
2 column=cf:name, timestamp=1500315396737, value=Wilma
在验证为 testShellUser 时,我无法删除单元格 - 也就是说,以下命令不执行任何操作:
delete 'testShellTable', '2', 'cf:name', 1500315396737
上面的命令是否有命令或变体允许 testShellUser 删除此单元格(不提升用户的权限/授权或从单元格中删除可见性标签) ?
答案 0 :(得分:0)
在试验HBase shell之后,我似乎找到了“解决方案。”
似乎如果单元格具有可见性字符串,那么对于 delete 命令来删除单元格,必须为 delete 命令提供可见性字符串标准匹配单元格的可见性字符串。因此,对于我在原始问题中提到的情况,必须使用以下 delete 命令:
delete 'testShellTable', '2', 'cf:name', 1500315396737, {VISIBILITY=>'testShell_visY'}
作为旁注,似乎用户也可以删除用户不可见的单元格。在我的情况下,如果用户已经拥有授权字符串“testShell_visX”,那么用户对“testShellTable”的扫描就不会显示该单元格,但上述删除命令仍然会删除该单元格。