授予所有表的累积用户权限

时间:2019-08-07 16:57:07

标签: accumulo

我正在尝试向新创建的用户帐户授予读/写/批量导入表权限。使用累计外壳中的通配符一次向所有表授予权限没有成功。

我尝试了以下授权命令变体:

grant Table.READ -t * ...
grant Table.READ -t '*' ...
grant Table.READ -t \\* ...
grant Table.READ -p * ...
grant Table.READ -p so_* ...
grant Table.* ...

对于-t / -p通配符,出现以下错误之一:
WARN:未找到符合您条件的表
错误:java.util.regex.PatternSyntaxException:索引0附近晃来晃去的元字符'*'
错误:org.apache.accumulo.core.client.TableNotFoundException:表*不存在

对于表格。*,我得到:
错误:java.lang.IllegalArgumentException:没有此类表权限

我有很多要授予权限的表,所以我真的希望可以使用通配符。

1 个答案:

答案 0 :(得分:1)

通配符当前不是一个选项。授予用户对表的权限应谨慎执行。如果必须授予用户访问许多表的权限,则可以为list the tablesgrant permission创建一个小型Java程序。

如果您事先知道很多表都在同一个“安全域”中,则可以创建一个表“ namespace”和grant permission to all tables in the namespace

如果必须使用外壳程序(不是主要的API,并且仅用于分类和小的琐碎操作),则可以通过创建一个小的脚本并将其作为批处理来执行。使用-?--help选项运行shell,以查看可从文件或STDIN执行命令的可用方法。

如果您希望提交添加通配符功能的请求,则应contact the developersopen an issue or create a new pull request to propose the change