为所有表授予 accumulo 用户权限

Give accumulo user permissions for all tables

我正在尝试向新创建的用户帐户授予 read/write/bulkimport table 权限。我在 accumulo shell 中使用通配符一次向所有 table 授予权限没有任何成功。

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

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 通配符,我得到以下错误之一:
警告:未找到 table 符合您的条件
错误:java.util.regex.PatternSyntaxException:索引 0 附近的悬挂元字符“*”
错误:org.apache.accumulo.core.client.TableNotFoundException:Table * 不存在

对于 Table.*,我得到:
错误:java.lang.IllegalArgumentException:没有这样的 table 权限

我有很多 table 需要授予权限,所以我真的希望通配符是一种选择。

目前不能使用通配符。授予用户对 table 的权限应该是一项谨慎的操作。如果您必须授予用户很多 table 的权限,您可以创建一个小的 Java 程序来 list the tables and grant permission

如果事先知道有很多table在同一个"security domain"中,可以创建一个table"namespace",grant permission to all tables in the namespace.

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

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