添加权限以在 Hive 上创建计划查询失败
Adding permissions to create scheduled queries on Hive failing
我在尝试在 Hive 中创建一些计划查询时遇到问题,但我找不到要添加的权限,我已尝试授予数据库上的所有权限,但没有任何变化。
我的命令是:
create scheduled query query_1_stream_1 cron '0 */1 * * * ? *' as
insert into stream_db.kafka_5m partition (st, hr)
...
错误:
Error while compiling statement: FAILED: SemanticException Permission denied: Principal [name=hive, type=USER] does not have following privileges for operation CREATE_SCHEDULED_QUERY [ADMIN PRIVILEGE on INPUT, ADMIN PRIVILEGE on OUTPUT]
不知道具体的权限是什么,正如我所说,我尝试添加所有权限,但错误仍然存在。
create_scheduled_query以及其他类似的hive操作,是为hive的管理员保留的权限,这意味着您需要将admin角色分配给要执行这些特权的用户或用户操作。
这是您需要的配置:
hive.server2.enable.doAs=false
hive.security.authorization.enabled=true
hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactory
hive.security.authenticator.manager=org.apache.hadoop.hive.ql.security.SessionStateUserAuthenticator
hive.users.in.admin.role=<admin user>
稍微说一下配置:
hive.server2.enable.doAs 将使您的查询 运行 成为 hive,这是 Hive 模拟功能,添加此角色并不是真正需要的,但通常您希望用户 hive 为 admin.
第 2、第 3 和第 4 不是强制性的,您可能有其他值。
第 5 个是神奇的,这表示哪些用户是管理员,您需要在此处列出您想要拥有这些权限的用户,如下所示:
hive.users.in.admin.role=hive
然后,打开您的配置单元 CLI 或直线并运行以下内容:
set role admin;
即使您的用户在配置中是管理员,此设置也是必需的,hive 用户不会 运行 永远不会自动设置为管理员,您需要 1. 拥有该角色,并且 2. 启用该角色在 CLI 中。
此时,您应该能够创建您的日程安排、更改它们、删除它们等。
我在尝试在 Hive 中创建一些计划查询时遇到问题,但我找不到要添加的权限,我已尝试授予数据库上的所有权限,但没有任何变化。
我的命令是:
create scheduled query query_1_stream_1 cron '0 */1 * * * ? *' as
insert into stream_db.kafka_5m partition (st, hr)
...
错误:
Error while compiling statement: FAILED: SemanticException Permission denied: Principal [name=hive, type=USER] does not have following privileges for operation CREATE_SCHEDULED_QUERY [ADMIN PRIVILEGE on INPUT, ADMIN PRIVILEGE on OUTPUT]
不知道具体的权限是什么,正如我所说,我尝试添加所有权限,但错误仍然存在。
create_scheduled_query以及其他类似的hive操作,是为hive的管理员保留的权限,这意味着您需要将admin角色分配给要执行这些特权的用户或用户操作。
这是您需要的配置:
hive.server2.enable.doAs=false
hive.security.authorization.enabled=true
hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactory
hive.security.authenticator.manager=org.apache.hadoop.hive.ql.security.SessionStateUserAuthenticator
hive.users.in.admin.role=<admin user>
稍微说一下配置: hive.server2.enable.doAs 将使您的查询 运行 成为 hive,这是 Hive 模拟功能,添加此角色并不是真正需要的,但通常您希望用户 hive 为 admin.
第 2、第 3 和第 4 不是强制性的,您可能有其他值。
第 5 个是神奇的,这表示哪些用户是管理员,您需要在此处列出您想要拥有这些权限的用户,如下所示:
hive.users.in.admin.role=hive
然后,打开您的配置单元 CLI 或直线并运行以下内容:
set role admin;
即使您的用户在配置中是管理员,此设置也是必需的,hive 用户不会 运行 永远不会自动设置为管理员,您需要 1. 拥有该角色,并且 2. 启用该角色在 CLI 中。
此时,您应该能够创建您的日程安排、更改它们、删除它们等。