内容纲要
概要描述
Guardian提供了管理Inceptor存储过程权限的功能,但此功能默认为不开启,需要通过如下方式开启
本次实验说明:实现hdfs用户对存储过程param只有访问权限,没有执行权限
详细说明
问题描述
- 创建存储过程
通过hive用户在 default数据库 中创建 存储过程param ,存储过程如下:CREATE OR REPLACE PROCEDURE param(p_in STRING,p_out string) IS BEGIN DBMS_OUTPUT.PUT_LINE("IN param:"||p_in) p_out := 'ab' end
- 给普通用户赋予对该存储过程的访问权限
在guardian页面对 hdfs 用户赋予对存储过程param的 ACCESS(访问)权限,但没有EXEC_FUNC(执行)权限
- 登录inceptor验证
使用hdfs用户登录inceptor
查看存储过程param,可以查看
执行存储过程param,也可以执行,说明guardian授权没有生效
解决方案
找到inceptor server所在的节点,如本次实验是在 mll01节点
登录终端,在 /etc/inceptor/conf/guardian-site.xml 文件末尾加入如下参数: vi /etc/inceptor1/conf/guardian-site.xml
guardian.client.inceptor.enable.plsql.check true
8180页面重启inceptor验证
重新用hdfs用户登录inceptor,再次执行存储过程param,报没有权限的错,通过guardian管控存储过程生效