hive,impala,hue,sentry,ldap权限

1.前期准备:

安装hive,impala,hue,sentry,ldap服务

在cdh页面中hive,impala去集成ldap即可,配置ldap服务器的地址,开启服务

hue集成ldap时候:

在hue.ini中配置初始化访问hive的用户 [impala] server_host=xiaovmaster01 server_interface=hiveserver2 server_port=21050 query_timeout_s=100 impersonation_enabled=True auth_username=hue auth_password=hue

[beeswax] close_queries=True use_sasl=False auth_username=hue auth_password=hue

(注意:最好使用hue,hue,使用其它用户,会有问题,目前没有找到解决方案!)

hue登陆的时候,需要使用一个预设的用户名和密码去连接hive/impala,连接成功之后,当真正执行SQL的时候,还使用登录时的账号来 做鉴权,可以通过clouder官网来看:

《hive,impala,hue,sentry,ldap权限》
《hive,impala,hue,sentry,ldap权限》
《hive,impala,hue,sentry,ldap权限》

修改hdfs的目录权限为:chown -R hive:hive /user/hive/warehouse,chmod -R 755 /user/hive/warehouse

在所有hiveserver2和impala节点上创建所有用户,通过脚本实现

将linux的用户和组全部批量导入到ldap中:

migrationtools工具要安装在hiveserver2的实例上,生成ldif文件,然后在ldap服务机器上执行ldap插入用户,和组操作

10.2.20.42: /opt/LinuxUserAdd目录下是添加用户脚本,生成所有用户.(要在所有impalad和hiveserver2的节点都创建用户)

cat /etc/passwd > testuser

cat /etc/group > testgroup

10.2.20.42:/usr/share/migrationtools目录下,放相关ldif文件

./migrate_passwd.pl testuser people.ldif

./migrate_group.pl testgroup group.ldif

在ldap服务器上执行以下脚本,将用户导入到ldap服务中

ldapadd -c -x -d “cn=manager,dc=xiaov,dc=com” -w -f people.ldif

ldapadd -c -x -d “cn=manager,dc=xiaov,dc=com” -w -f group.ldif

ldapsearch ­lll ­x ­d “cn=admin,dc=contoso,dc=com” ­w ­b “dc=contoso,dc=com” ‘(uid=*)’

linux新建用户:useradd zhangsan

linux新建组:groupadd zhangsan_group

把用户添加进入某个组:usermod -a -G groups loginname

强行设置某个用户所在组:usermod -g group loginname

把某个用户改为 group(s) :usermod -G groups loginname

sentry服务中,管理员用户为hive,或者impala,或者添加一个新的用户作为beeline登录的超级用户,在ldap中创建对应用户和密码

管理员授权:hive登陆:beeline -u “jdbc:hive2://ip:端口/” -n username  -p paswd

impala-shell -i ip -u username -l –auth_creds_ok_in_clear

-i 集群中任意一台impalad服务器都可以

-u 登录用户

-l 使用ldap

–auth_creds_ok_in_clear 由于没有使用ssl,需要添加该参数

列出分配给给定的所有角色 <组名> (仅允许Sentry管理员用户和属于指定的组的其他用户 <组名>):show role grant group tinyv_group;

管理员:

给某个角色授予所有库的所有权限(增删改查)

create role xiaov_role;

grant all on server server1  to role xiaov_role;

grant role xiaov_role to group xiaov_group;

给某个角色授予某个库的只读权限

create role dataMiddle_role;

grant select on database edw_tinyv to role dataMiddle_role;

grant role dataMiddle_role to group dataMiddle_group;

特殊情况:要针对某个角色给比如ods库的某个的表的权限

grant select(column_name)on table table_name to role role_name;

revoke select(column_name)on table table_name from role role_name;

    原文作者:hbtszyt
    原文地址: https://www.jianshu.com/p/b3ae58e52b7a
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞