基于LDAP和Sentry的大数据认证和鉴权解决方案--Part Two:Sentry集成
2016-12-28 18:51
337 查看
上一篇文章中,介绍了LDAP和HUE,Impala以及Hive的集成来完成了用户认证的工作,接下来我们聊一下如何使用Sentry来实现对数据的授权管理。
Sentry一旦和Hive集成,就会接管Hive的Metadata,也就是说。如果没有集成Sentry,Hive的metadata是存放在Hive自己的metadata数据库中的,但一旦和Sentry整合,这些metadata信息就会保存在Sentry自己的数据库里,这些metadata信息中包含了对数据的授权信息,sentry会分析这些数据授权信息来判断当前登录的用户是否具备相应的数据访问权限。
1,Sentry的安装
使用Cloudera Manager来安装,非常简单,需要注意的是安装前要在/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/jars目录下放入MySQL的驱动包。
2,Sentry的整合
在HUE,Hive和Impala中都做如下的配置:
![](http://img.blog.csdn.net/20161228190638810)
这两个配置中,第一个配置告诉系统(hue,hive,impala)要使用sentry来做权限管理
第二个配置把testing mode设置为true,如果为false,hive会要求必须使用ssl来进行密码传输,我们的环境并没有配置ssl
对于Hive,还需要多一个特殊的配置
![](http://img.blog.csdn.net/20161228191107831)
完成上述配置之后,sentry就对Hue,hive和impala都生效了。
3,验证
step 1:首先,我们用hive作为用户来登录hive(这是一个权限很大的用户),然后show databases,可以看到有多个数据库:
![](http://img.blog.csdn.net/20161228191538410)
step 2:然后我们在LDAP中创建一个新的用户(test-user),并设置这个新用户的密码(123456)。然后再以这个新用户去登录:
beeline -u "jdbc:hive2://ddw-test-1:10000" -n test-user -p 123456 -d org.apache.hive.jdbc.HiveDriver
此时再执行show databases命令,发现看不到出了default之外的任何数据库:
![](http://img.blog.csdn.net/20161228192706056)
step 3:对test-user进行授权
#创建一个角色:test-role
create role test_role;
#给新创建的角色进行授权,让其可以访问所有数据库
grant all on server server1 to role test_role;
#然后把用户和角色关联起来。
GRANT ROLE test_role TO GROUP test_user;
#然后在linux中创建用户和组,特别需要注意的是,这个命令要在所有部署了HiveServer2实例的机器以及所有所有部署了impalad的实例的机器上去执行:
useradd test_user
#然后用新用户去登录beeline或者hue或者impala shell去执行show databases,就可以看到数据库的信息了。
Sentry一旦和Hive集成,就会接管Hive的Metadata,也就是说。如果没有集成Sentry,Hive的metadata是存放在Hive自己的metadata数据库中的,但一旦和Sentry整合,这些metadata信息就会保存在Sentry自己的数据库里,这些metadata信息中包含了对数据的授权信息,sentry会分析这些数据授权信息来判断当前登录的用户是否具备相应的数据访问权限。
1,Sentry的安装
使用Cloudera Manager来安装,非常简单,需要注意的是安装前要在/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/jars目录下放入MySQL的驱动包。
2,Sentry的整合
在HUE,Hive和Impala中都做如下的配置:
这两个配置中,第一个配置告诉系统(hue,hive,impala)要使用sentry来做权限管理
第二个配置把testing mode设置为true,如果为false,hive会要求必须使用ssl来进行密码传输,我们的环境并没有配置ssl
对于Hive,还需要多一个特殊的配置
完成上述配置之后,sentry就对Hue,hive和impala都生效了。
3,验证
step 1:首先,我们用hive作为用户来登录hive(这是一个权限很大的用户),然后show databases,可以看到有多个数据库:
step 2:然后我们在LDAP中创建一个新的用户(test-user),并设置这个新用户的密码(123456)。然后再以这个新用户去登录:
beeline -u "jdbc:hive2://ddw-test-1:10000" -n test-user -p 123456 -d org.apache.hive.jdbc.HiveDriver
此时再执行show databases命令,发现看不到出了default之外的任何数据库:
step 3:对test-user进行授权
#创建一个角色:test-role
create role test_role;
#给新创建的角色进行授权,让其可以访问所有数据库
grant all on server server1 to role test_role;
#然后把用户和角色关联起来。
GRANT ROLE test_role TO GROUP test_user;
#然后在linux中创建用户和组,特别需要注意的是,这个命令要在所有部署了HiveServer2实例的机器以及所有所有部署了impalad的实例的机器上去执行:
useradd test_user
#然后用新用户去登录beeline或者hue或者impala shell去执行show databases,就可以看到数据库的信息了。
相关文章推荐
- 基于LDAP和Sentry的大数据认证和鉴权解决方案--Part One:LDAP集成
- 基于数据复制的高可靠性解决方案
- 【解决方案】之基于iot表建物化视图的数据高级复制
- 集成SafeNet发布业内首款面向云计算与SaaS应用的单点登录和强身份认证解决方案
- Linux下基于LDAP统一用户认证的研究
- 基于数据集成时,请尽量隔离接口表的访问
- Linux下基于LDAP统一用户认证的研究
- 集成SafeNet发布业内首款面向云计算与SaaS应用的单点登录和强身份认证解决方案
- 基于ARM的嵌入式大容量数据存储解决方案
- 如何实现基于Jazz Team Server的RQM与LDAP的集成(三)
- 基于NAS存储的数据备份解决方案
- RDF――Web数据集成的元数据解决方案
- 基于LDAP的Web身份认证机制
- 基于LDAP的Web身份认证机制的研究与设计
- 如何实现基于Jazz Team Server的RQM与LDAP的集成(一)
- 基于Adobe LCDS产品的数据访问解决方案Part2
- 甲骨文宣布,推出最新数据集成解决方案Oracle GoldenGate
- 基于 SOA 架构的石化行业信息集成解决方案介绍