> 技术文档 > Windowns 环境 Dbeaver 配置连接 kerberos 环境 hive_dbeaver连接hive kerberos

Windowns 环境 Dbeaver 配置连接 kerberos 环境 hive_dbeaver连接hive kerberos


连接配置

下载 MIT Kerberos FRO Windows

  • 下载地址1
  • 下载地址2

安装 MIT Kerberos FRO Windows

一路next

配置 hosts

配置主机 hosts(C:\\Windows\\System32\\drivers\\etc)

新加 hadoop 集群的 hosts 主机名,如:

10.21.64.12 hadoop0110.21.64.13 hadoop0210.21.64.14 hadoop03

修改 krb5.ini 文件

默认路径C:\\ProgramData\\MIT\\Kerberos5 ,如果安装路径不同则根据自己的安装路径查找文件

将服务器中下载的 krb5.conf 内容复制到 krb5.ini 中,不建议直接修改后缀,会导致读取失败

内容如下:

# Configuration snippets may be placed in this directory as well[libdefaults]# dns_lookup_realm = false# ticket_lifetime = 24h# renew_lifetime = 7d# forwardable = true# rdns = false# pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt# default_realm = EXAMPLE.COM# default_ccache_name = KEYRING:persistent:%{uid} default_realm = HIVE.COM dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true clockskew = 120 udp_preference_limit = 1[realms]# EXAMPLE.COM = {# kdc = kerberos.example.com# admin_server = kerberos.example.com# } HIVE.COM = { kdc = hadoop01 admin_server = hadoop01 }[domain_realm]# .example.com = EXAMPLE.COM# example.com = EXAMPLE.COM .hive.com = HIVE.COM hive.com = HIVE.COM

配置 KFW 环境变量

增加系统环境变量:

# 默认是这个路径,有其他安装路径自行修改KRB5_CONFIG=C:\\ProgramData\\MIT\\Kerberos5\\krb5.ini# temp目录需要手动创建KRB5CCNAME=C:\\temp\\krb5cache

Windowns 环境 Dbeaver 配置连接 kerberos 环境 hive_dbeaver连接hive kerberos

kinit 认证权限

下载服务器上的 keytab 文件到本地,进入 dos 环境

执行命令如下:

kinit -kt test111.keytab test111/hadoop01@HIVE.COM
  • test111.keytab:keytab文件名
  • test111:是鉴权账号名称
  • hadoop01@HIVE.COM:hadoop 集群 keyboard 的 principal

执行成功后可以使用 klist 查看状态

Windowns 环境 Dbeaver 配置连接 kerberos 环境 hive_dbeaver连接hive kerberos

相应的C:\\temp目录也会生成一个 cache 文件

Windowns 环境 Dbeaver 配置连接 kerberos 环境 hive_dbeaver连接hive kerberos

打开 MIT Kerberos Ticket Manager 软件也可以查看到生成的密钥

Windowns 环境 Dbeaver 配置连接 kerberos 环境 hive_dbeaver连接hive kerberos

准备DBeaver环境

下载并安装 DBeaver

修改 dbeaver 配置,找到dbeaver.ini文件,在文件最后添加

-Djavax.security.auth.useSubjectCredsOnly=false-Djava.security.krb5.conf=C:\\ProgramData\\MIT\\Kerberos5\\krb5.ini-Dsun.security.krb5.debug=true

Windowns 环境 Dbeaver 配置连接 kerberos 环境 hive_dbeaver连接hive kerberos

DBeaver连接配置

添加 DBeaver 连接,新增一个 hive 连接,编辑驱动,将 URL 模板修改为 jdbc:hive2://{host}:{port}/{database};principal=hive/{host}@AOTAIN.COM ,添加 jdbc 驱动文件,找到类,点击确定后,输入主机名、库名、用户名,测试连接

URL 模板中的 principal 中\"hive\"应该根据 hive 的 hive-site.xml 文件中 hive.server2.authentication.kerberos.principal 配置而来

如 hive 的 hive-site.xml 文件 hive.server2.authentication.kerberos.principal 配置如下:

<property> <name>hive.server2.authentication.kerberos.principal</name> <value>hdfs/_HOST@HIVE.COM</value></property>

如上,URL 模板中的 principal 应为 hdfs/{host}@AOTAIN.COM

Windowns 环境 Dbeaver 配置连接 kerberos 环境 hive_dbeaver连接hive kerberos

添加完成后,点击测试连接,连接成功

Windowns 环境 Dbeaver 配置连接 kerberos 环境 hive_dbeaver连接hive kerberos

其他问题

kerberos 认证登录后,使用的hive数据库用户是?

鉴权信息如下:

hive/hadoop01@HIVE.COM
  • hive:鉴权账号
  • hadoop01@HIVE.COM:hadoop 集群 keyboard 的 principal
  1. 鉴权账号为hive,操作系统中hive账号存在
hive/hadoop01@HIVE.COM

  1. 鉴权账号为hdfs,操作系统中hdfs账号不存在,且core-site.xml文件中配置规则
hdfs/hadoop01@HIVE.COM

  1. 鉴权账号为test111,操作系统中test111不存在,且core-site.xml文件未中配置规则
test111/hadoop01@HIVE.COM

hadoop.security.auth_to_local配置

hadoop.security.auth_to_local

MIT 切换 keytab 之后,dbeaver 不生效

需要重启dbeaver

参考文档

DBeaver使用Kerberos连接Hive-CSDN博客