- CM和CDH版本:5.13.1
- 已启用Kerberos
- 已启用Sentry
测试数据
[root@ip-186-31-16-68 datamasking]# vim employees.csv 1,John Smith,123-55-4567,25000.0 2,Jim Bloggs,999-88-7777,35000.0 3,Jane Doe,808-88-0880,45000.0
创建Hive外部表
CREATE EXTERNAL TABLE employees (key INT, fullname STRING, ssn STRING, salary FLOAT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '/extwarehouse/data/employees/';
用beeline连接HiveServer2
[root@ip-186-31-16-68 datamasking]# beeline beeline> !connect jdbc:hive2://ip-186-31-24-169.ap-southeast-1.compute.internal:10099/;principal=hive/ip-186-31-24-169.ap-southeast-1.compute.internal@FAYSON.COM
将数据加载到外部表employees的HDFS目录
[root@ip-186-31-16-68 ~]# cd datamasking/ [root@ip-186-31-16-68 datamasking]# ll total 8 -rw-r--r-- 1 root root 97 Mar 15 23:12 employees.csv -rw-r--r-- 1 root root 173 Mar 15 23:22 employees.sql [root@ip-186-31-16-68 datamasking]# hadoop fs -put employees.csv /extwarehouse/data/employees/ [root@ip-186-31-16-68 datamasking]# hadoop fs -ls /extwarehouse/data/employees/ Found 1 items -rwxrwx--x+ 3 hive hive 97 2018-03-15 23:28 /extwarehouse/data/employees/employees.csv [root@ip-186-31-16-68 datamasking]#
通过视图的方式将employees表中的ssn数据进行脱敏处理,SQL如下:
CREATE VIEW employees_masked AS SELECt key, fullname, CONCAt('***-**-', SUBSTr(ssn, 8, 4)) AS ssn, "PRIVATE" AS salary FROM employees;
- 在命令行通过Beeline使用Hive管理员用户登录HiveServer2,进行创建视图 *** 作
- 执行SQL查看视图数据
- 创建脱敏视图
- 查看未脱敏视图数据
CREATE VIEW employees_unmasked AS SELECt key, fullname, ssn, salary FROM employees;
- 权限分配及测试
- 创建faysona和faysonb用户对应上图的Group A和Group B
- Hue管理员账号登录创建faysona和faysonb用户
- 在命令行使用faysona用户访问employees表的数据文件
- hive用户登录Hue给faysona和faysonb用户分别授权
- faysona用户登录Hue查看employees_unmasked和employees_masked视图数据
- fHive引擎查询employees_masked脱敏视图数据
- Hive引擎查询employees_unmasked未脱敏视图
- Impala引擎查询employees_masked脱敏视图数据
- Impala引擎查询employees_unmasked未脱敏视图数据
- 在命令行使用faysona用户访问employees表的数据文件
[root@ip-186-31-16-68 ~]# kinit faysona [root@ip-186-31-16-68 ~]# hadoop fs -cat /extwarehouse/data/employees/employees.csv
- 总结
- 为Hive数据进行脱敏处理可以使用regexp_replace()函数通过正则表达式的方式敏感数据屏蔽,也可以通过自定义的UDF函数来等方式来实现敏感数据脱敏
- 通过脱敏SQL创建视图,使用Sentry权限控制将脱敏数据的视图提供给不同的用户访问
- 授权访问视图(即使授权ALL)的用户也无权限访问相应表的底层数据文件
大数据视频推荐:
CSDN
大数据语音推荐:
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)