Hive设置用户名和密码

集群使用的是LDAP用户模式进行系统用户的管理,即用户信息由LDAP服务器端维护,集群的Hive结合Ranger,LDAP来进行hive功能的权限控制,今天在使用命令行beeline登陆hive的时候,我的账户test密码已经更新,但是我忘了,直接使用旧密码,发现也可以正常登陆,即

# beeline

beeline>!connect jdbc:hive2://gx-batch-dn-t-2:2181,gx-batch-dn-t-7:2181,gx-batch-dn-t-15:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2 test test@123

更搞笑的是,我直接使用一个随便值,都能正常登陆到hive中,这对于生产集群是一个非常大的漏洞,其他人可以随意的登陆到系统,修改你的hive表数据,删你的数据等等。

所以hive需要设置登陆,需要提供正常的LDAP用户名已经用户密码才能登陆到系统中,使用自己的hive表。


修改的方式有2种。

1,如果你的集群使用的ambari管理的。那么登陆ambari, HIVE-->配置,在界面里找到如图中的内容:

Hive设置用户名和密码_第1张图片

HiveServer2 Authentication的默认值为NONE,也就意味着不需要验证,只需要提供正确的用户名即可。把它的值改为LDAP,修改为LDAP之后,此时 ambari并不支持你保存这样的修改,你会发现这样的提示:


点击显示详情,内容如下:

Hive设置用户名和密码_第2张图片

也就是说,你要修改为LDAP,你要确认这个hive.server.authentcation.ldap.url是否需要跟着一起修改,把复选框的勾去掉,然后确定即可保存了。

然后你在客户端机器上执行登陆操作(使用错误的密码:),提示如下:


此时使用错误的密码登陆就会失败。当然如果你的集群使用的Kerberos,pam等等,修改为对应的验证方式即可,然后注意下一些依赖的配置是否需要修改。例如文中的:hive.server.authentcation.ldap.url值。

你可能感兴趣的:(hadoop,hive,ldap,linux,大数据运维)