如何通过Kerberos连接PostgreSQL及DataGrip Kerberos认证连接配置疑问
解决DataGrip通过Kerberos认证连接PostgreSQL的问题
嘿,既然你的Python代码已经能正常用Kerberos连PostgreSQL了,那DataGrip的配置其实很容易搞定,咱们一步步来:
第一步:获取Realm和KDC的值
你已经有一个能正常工作的/etc/krb5.conf文件了,直接从这里取就好:
- 打开
/etc/krb5.conf文件 - 找到
[libdefaults]区块里的default_realm字段,这个值就是你要的Realm(比如EXAMPLE.COM) - 再找到
[realms]区块下,对应刚才那个Realm的子区块里的kdc字段,这就是KDC的地址(比如kdc.example.com)
举个krb5.conf的示例片段,方便你对应查找:
[libdefaults]
default_realm = EXAMPLE.COM
[realms]
EXAMPLE.COM = {
kdc = kdc.example.com
admin_server = admin.example.com
}
第二步:配置DataGrip连接
1. 基础数据源配置
打开DataGrip,添加PostgreSQL数据源:
- 主机填
database.address.com(和你Python代码里一致) - 端口填
5472 - 数据库填
tested
2. 选择Kerberos认证方式
切换到「Authentication」选项卡,认证类型选择「Kerberos」。
3. 配置JVM启动参数
DataGrip是Java写的,需要指定Kerberos相关的JVM参数,有两种方式:
方式一:直接指定Realm和KDC
找到DataGrip的VM配置文件:
- Windows:在DataGrip安装目录的
bin文件夹里,编辑datagrip64.exe.vmoptions(或datagrip.exe.vmoptions),添加两行:-Djava.security.krb5.realm=你的REALM值 -Djava.security.krb5.kdc=你的KDC地址 - Mac:右键Applications里的DataGrip,选择「Show Package Contents」,进入
Contents/bin,编辑datagrip.vmoptions,添加同样的两行 - Linux:在DataGrip安装目录的
bin文件夹里,编辑datagrip.vmoptions,添加参数
方式二:直接复用已有的krb5.conf(更推荐)
既然你的/etc/krb5.conf已经能让Python正常连接,那直接让DataGrip用这个配置文件就行,不用单独指定Realm和KDC。只需要在VM参数里添加一行:
-Djava.security.krb5.conf=/etc/krb5.conf
4. 确保Kerberos票据有效
在连接DataGrip之前,先在终端执行kinit username(和你Python代码里的user一致),确保已经获取了有效的Kerberos票据。
5. 测试连接
做完以上配置后,点击「Test Connection」,应该就能成功连接了!
内容的提问来源于stack exchange,提问作者Mikhail_Sam
相关产品推荐
相关产品推荐

