DBeaver链接kerberos安全认证的Phoenix集群

Stella981
• 阅读 913

DBeaver链接kerberos安全认证的Phoenix集群

最近公司的CDH集群,启动了kerberos安全认证,所有的用户验证全部需要依赖kerberos来进行。之前的裸奔集群,总算有了一些安全认证的功能,虽然网上很多人都说不推荐使用kerberos进行集群的安全认证,但是也没有说明使用哪种安全认证的方式会更好,目前比较现成的安全认证方式也只知道kerberos。

使用kerberos认证之后,原本的Phoenix sqlline可以在存有kerberos缓存票据的机器上直接运行,链接方式,启动命令等,都和没有启动kerberos之前一样。只需要执行klist命令,能够显示kerberos主体信息即可。但是使用Windows进行远程链接Phoenix时出现了问题。首先Windows上没有kerberos客户端,不能直接缓存票据。其次,如果使用kinit命令进行链接的话,必须知道kerberos中的主体密码,而CDH的kerberos主体是CM自主生成的,我们也不知道密码。所以我们只能使用kertab的形式进行链接。

明确了使用keytab的形式进行链接,我们首先尝试了Linux sqlline的形式链接,测试完全没有问题,使用一切正常。但是使用Windows的DBeaver远程链接时要怎么做呢?

百度搜索了一下,只搜到了Phoenix链接kerberos安全认证集群时的jdbc url链接格式,其他的都不是Phoenix的链接设置了。尝试了几天,终于使用DBeaver链接成功了,记录下来,分享给有需要的人。

1.安装Windows的kerberos的客户端

下载Windows的kerberos客户端进行安装,直接百度下载地址吧,版本貌似比较古老

安装的时候注意,如果公司的电脑不给管理员权限的话,记得选择中间的【custom】安装选项,将kerberos的客户端安装到自己用户能够访问的文件夹下,确保后续的客户端能够正常使用。

2.设置Windows端的KDC配置文件

将集群的kerberos配置文件内容拷贝到C:\ProgramData\MIT\Kerberos5\krb5.ini文件中

如果该文件不存在,那么自己创建出来即可,当然了,也可以通过配置环境变量来改变该配置文件的路径

KRB5_CONFIG=E:/apps/kerberos_conf/krb5.ini

3.配置DBeaver的启动参数

因为DBeaver使用的是JAVA的链接方式链接Phoenix集群,所以我们可以通过-D参数传入一些配置来设置程序,已到达url模板中不能传递KDC服务器配置的问题

打开DBeaver的安装目录,打开dbeaver.ini配置文件,添加以下内容

-Djava.security.krb5.conf=C:\ProgramData\MIT\Kerberos5\krb5.ini

传递KDC的配置信息给JVM,具体的krb5.ini的目录,请根据自己的情况进行修改。

4.修改DBeaver中Phoenix链接驱动的URL模板

修改dbeaver中,Phoenix链接器的URL模板:

jdbc:phoenix [ :<zookeeper quorum> [ :<port number> [ :<root node> [ :<principal> [ :<keytab file> ] ] ] ] ] 

上面是Phoenix官网给出的JDBC链接模板,并且说明了如果需要后续参数,必须要列出前面的所有参数。但是进过查看源码,明确了网上所说的两点错误:

  1. 不需要列出前面的所有参数,但是hbase-site.xml文件中需要有所有的信息

  2. Phoenix-client.jar中需要有core-site.xml,hdfs-site.xml,hbase-site.xml三个集群配置文件

  3. Windows的keytab路径可以使用带盘符的路径,如:E:\hbase.keytab

修改为自己集群的链接即可,进行测试发现已经可以链接到kerberos安全认证的集群了。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Stella981 Stella981
2年前
Apache Hadoop配置Kerberos指南
  通常,一个Hadoop集群的安全使用kerberos来进行保障。在启用Kerberos后,需要用户进行身份验证。用户通过验证后可以使用GRANT/REVOKE语句来进行基于角色的访问控制。本文介绍一下在CDH集群中如何配置kerberos。1.KDC安装和配置脚本  脚本install\_kerberos.sh可以完成kerberos服
Stella981 Stella981
2年前
Kerberos无约束委派的攻击和防御
 0x00前言简介当ActiveDirectory首次与Windows2000Server一起发布时,Microsoft就提供了一种简单的机制来支持用户通过Kerberos对Web服务器进行身份验证并需要授权用户更新后端数据库服务器上的记录的方案。这通常被称为Kerberosdoublehopissue(双跃点问题),
Stella981 Stella981
2年前
Flink on Yarn Kerberos安全认证
点击上方蓝色字体,选择“设为星标”回复”资源“获取更多资源!(https://oscimg.oschina.net/oscnet/77081263fad64d8d8d364c69da8d921c.jpg)!(https://oscimg.oschina.net/oscnet/a6beb4dbf64540fb
Stella981 Stella981
2年前
Kerberos环境下删除ZooKeeper服务注册信息问题分析
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。1.问题描述在CDH集群中启用了Kerberos服务后,通过zookeeperclient登录Kerberos删除服务的注册信息时报“Authenticationisnotvalid”,具体操作及异常信息如下。Fayson这里已经使用fays
Stella981 Stella981
2年前
Flink整合Oozie Shell Action 提交任务带Kerberos认证
最近这段时间一直在忙新集群迁移,上了最新的cdh6.3.0于是Flink提交遇到了许多的问题,还好有clouderaLicense有了原厂的帮助和社区的伙伴,问题解决起来快了不少。集群具体情况是CDH6.3.0Flink1.8.1,整个数据平台全部组件都上了kerberos和ldap因为要过认证,所以任务提交方法我们选择统一Oozie提交任务
Stella981 Stella981
2年前
Kerberos常见错误
1.CDH安装Kerberos后,重启集群报错SocketReader1forport8022:readAndProcessfromclient192.168.50.83threwexceptionjavax.security.sasl.SaslException:GSSinitiatefailedCaus
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这