Hive创建scheduled query定时查询权限不足报错如何解决
Hive创建Scheduled Query定时查询权限配置方案
报错根因
该报错是因为Hive定时查询的创建权限独立于普通库表权限,除了库表读写权限外,还需要定时任务专属创建权限,以及任务关联输入、输出资源的ADMIN权限,普通库表全权限不会覆盖这两类权限。
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]
具体授权操作
若使用Hive原生权限管理
使用Hive管理员账号执行以下授权命令:
- 授予用户定时查询全局创建权限
GRANT CREATE ON SCHEDULED QUERY TO USER hive;
- 授予任务关联输入、输出资源的ADMIN权限,替换以下命令中的输入库表为INSERT语句中SELECT对应的源库表:
-- 授予输出库表ADMIN权限 GRANT ALL PRIVILEGES ON DATABASE stream_db TO USER hive WITH GRANT OPTION; GRANT ALL PRIVILEGES ON TABLE stream_db.kafka_5m TO USER hive WITH GRANT OPTION; -- 授予输入库表ADMIN权限,请替换为实际的输入库、输入表名称 GRANT ALL PRIVILEGES ON DATABASE [输入库名] TO USER hive WITH GRANT OPTION; GRANT ALL PRIVILEGES ON TABLE [输入库名].[输入表名] TO USER hive WITH GRANT OPTION;
- 权限生效验证
执行以下命令确认权限配置完成:
SHOW GRANT USER hive ON SCHEDULED QUERY;
若使用Ranger做权限管控
在Ranger控制台添加对应Hive权限策略:
- 新增定时查询权限策略:资源类型选择
scheduled query,勾选CREATE、ADMIN权限,关联用户为hive - 新增输入库表权限策略:选择任务用到的输入库、表,勾选所需读写权限,同时开启
Delegate Admin选项 - 新增输出库表权限策略:选择
stream_db库、kafka_5m表,勾选INSERT、ALTER、SELECT等所需权限,同时开启Delegate Admin选项
前置配置检查
确认Hive服务已开启定时查询功能,核心配置项如下:
hive.scheduled.queries.enabled = true hive.security.authorization.enabled = true
完成配置后重新执行创建定时查询的语句即可。
内容的提问来源于stack exchange,提问作者Marco
相关产品推荐
相关产品推荐

