macOS环境下Azure Data Studio连接SQL Server出现Kerberos错误如何解决
核心疑问解答
1. 为什么找不到edu.mit.Kerberos和krb5.conf文件
macOS默认不会预置这两个Kerberos配置文件,且/etc属于系统隐藏目录,默认不会在Finder中展示,你直接通过终端手动创建即可。
2. 已有klist凭证是否还需要编辑krb5.conf
需要。klist查询到的只是你的域身份初始票据(TGT),Azure Data Studio连接SQL Server时需要申请SQL服务的专用服务票据,没有krb5.conf的配置信息,客户端无法定位域控制器、完成服务票据的申请流程,所以即使有初始票据也会连接失败。
具体解决步骤
步骤1:创建krb5.conf配置文件
打开终端执行以下命令,进入编辑界面:
sudo nano /etc/krb5.conf
输入本机管理员密码后,将下方模板替换为你的实际域信息后粘贴进去:
[libdefaults] default_realm = 你的AD域名(全大写,例:CORP.MYCOMPANY.COM) dns_lookup_kdc = true dns_lookup_realm = true [realms] CORP.MYCOMPANY.COM = { kdc = 域控制器地址(例:dc.corp.mycompany.com) admin_server = 域控制器地址 default_domain = corp.mycompany.com } [domain_realm] .corp.mycompany.com = CORP.MYCOMPANY.COM corp.mycompany.com = CORP.MYCOMPANY.COM
按Ctrl+O回车保存,再按Ctrl+X退出编辑界面。
步骤2:创建edu.mit.Kerberos软链接
macOS系统的Kerberos框架会读取/Library/Preferences/edu.mit.Kerberos路径的配置,直接建立软链接复用krb5.conf的内容即可,无需重复编写:
sudo ln -s /etc/krb5.conf /Library/Preferences/edu.mit.Kerberos
步骤3:验证Kerberos配置有效性
先销毁已有票据再重新申请,避免旧票据影响验证:
kdestroy kinit 你的域账号@全大写AD域名 # 例:kinit lisi@CORP.MYCOMPANY.COM,输入域账号密码完成申请
执行klist确认初始票据存在后,再执行以下命令申请SQL Server的服务票据,验证配置是否正确:
kvno MSSQLSvc/你的SQL Server完整域名:端口@全大写AD域名 # 例:kvno MSSQLSvc/sql01.corp.mycompany.com:1433@CORP.MYCOMPANY.COM
如果返回带kvno数字的服务票据信息,说明配置正常;如果报错则检查krb5.conf里的域名、域控制器地址是否填写正确。
步骤4:验证Azure Data Studio连接
连接配置需注意以下两点:
- 服务器地址必须填SQL Server的完整域名,不要用IP,Kerberos认证依赖域名解析
- 高级设置中确认
TrustServerCertificate已经设置为true
直接测试连接即可。
内容的提问来源于stack exchange,提问作者cluis92
相关产品推荐
相关产品推荐

