注意:Row Level Filter 仅仅对 HiveServer 生效,用 Hive Cli 方式不生效。
1. 首先配置 Hive 和 Ranger 的结合。 2. 配置 Ranger打开 Ranger,点击 "Row Level Filter" 按钮。下边列出已经定义的 Row Level Filter。
3. 点击右边的 "Add New Policy" 按钮新建规则,或者修改现有的规则。(修改现有规则点击 Action 列中间的按钮)
Policy Details 说明对哪个库的哪个表的设置。
Row Filter conditions 确定哪些组和用户使用此规则。Access Types 是此规则生效的操作,以下示例是 select, 仅在 select 时触发,“Row Level Filter” 设置过滤条件,如"tbl_id > 10",只能看到 tbl_id > 10 的数据。
3. 测试 3.1 Beeline 连接 Hive Server 测试可以看到规则已经生效。
select tbl_id from tbls; +---------+ | tbl_id | +---------+ | 11 | | 12 | | 13 | | 14 | | 15 | | 16 | | 17 | | 18 | | 19 | | 20 | | 21 | | 22 | | 23 | | 24 | | 25 | | 26 | | 27 | | 28 | | 29 | | 30 | | 31 | | 32 | | 33 | | 34 | | 35 | | 36 | | 37 | | 38 | | 39 | | 40 | | 41 | | 42 | | 43 | | 44 | | 45 | | 46 | | 47 | | 48 | | 49 | | 50 | | 51 | | 57 | | 58 | +---------+ 43 rows selected (1.411 seconds)3.2 Hive Cli 测试
直接使用 Hive 客户端,可以看到,规则没有生效。
hive> use sys; OK Time taken: 0.934 seconds hive> select tbl_id from tbls; OK 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 57 58



