1.1 权限控制初体验
查看默认的访问策略,此时只有admin用户拥有对所有库、表和函数的访问权限
验证:使用atguigu用户尝试进行登录,登录成功后,执行查询语句:
之后使用admin用户进行登录,可以完成Hive的所有操作
1.2 为用户配置权限
例如为atguigu用户配置default库emp和dept表的所有列的读权限,为jack用户配置default库emp和dept表的所有列的读写权限。
点击Add New Policy按钮:
填写策略名称,以及此策略设计的库、表、列等信息:
填写设计此策略的允许的用户权限:
之后点击Add添加按钮,发现在面板上已经添加完成:
测试:beeline无需重新连接hiveserver2,再次执行查询,发现atguigu用户已经可以进行查询,但是只能查询自己有权限查询的表信息
对以下两个表,有读权限,没有写权限:
再次测试jack用户,尝试向dept表写入数据后查询:
0: jdbc:hive2://hadoop103:10000> insert into table dept values(50,'SECURITY',1800);
0: jdbc:hive2://hadoop103:10000> select * from dept;
1.3 脱敏操作
通过脱敏操作可以限制用户对某一列的访问,将敏感数据不暴露给用户!
案例:指定atguigu用户在查询emp表时,对hiredate的年月部分脱敏!
首先需要保证用户对指定的列有访问权限,可以参考5.2进行配置!
点击Masing标签,再点击Add New Policy
指定表和列
指定用户和脱敏操作:
之后点击save按钮!那么只有atguigu用户在查询时,会触发此策略!
1.4 行级别过滤
通过行级别过滤可以将表中的数据进行条件过滤后再暴露给用户!
例如:atguigu用户只允许查询emp表中job类型为SALESMAN的用户信息。
同理,行级别过滤也要求用户对指定表有access权限!参考5.2的配置!
选择Row Level Filter标签,点击Add New Policy:
选择对应的库和表:
添加过滤规则和用户:
之后点击add按钮!
验证:
更多配置,可以参考官网介绍:https://cwiki.apache.org/confluence/display/RANGER/Row-level+filtering+and+column-masking+using+Apache+Ranger+policies+in+Apache+Hive