MacOS(Apple Silicon)下用其他域账户通过Windows身份验证连接SQL Server
跨域账户通过Windows身份验证连接SQL Server方案(含MacOS Apple Silicon环境)
Windows 环境下的实现方法
如果需要用当前登录账户以外的域账户连接SQL Server,有两种常用方式:
- 使用
runas /netonly命令启动客户端程序:
打开命令提示符,执行以下命令(替换为实际的域账户和程序路径):runas /netonly /user:DOMAIN\target_username "C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\Ssms.exe"/netonly参数的作用是:本地系统仍使用当前登录账户权限,仅远程连接(如SQL Server)时使用指定的域账户身份。 - 通过Windows凭据管理器预设凭据:
- 打开「控制面板」→「凭据管理器」→「Windows凭据」
- 点击「添加Windows凭据」,输入SQL Server的服务器名称、目标域账户(格式
DOMAIN\username)和密码 - 后续启动客户端连接该服务器时,会自动使用预设的域账户身份。
错误日志分析(Error: 18456, State: 58)
你遇到的错误日志:
Error: 18456, Severity: 14, State: 58.
Login failed for user ''. Reason: An attempt to login using SQL authentication failed. Server is configured for Integrated authentication only. [CLIENT: nnn.nnn.nnn.nnn]
核心原因是:客户端没有正确传递Windows域账户信息,导致服务器识别为尝试SQL身份验证,但服务器仅启用了集成Windows验证,因此拒绝登录。空用户名说明客户端的身份信息传递完全失败。
MacOS(Apple Silicon)环境下的实现方法
可以通过Azure Data Studio或DBeaver实现跨域账户的Windows身份验证连接,核心是配置Kerberos认证(MacOS下的Windows集成验证依赖Kerberos)。
1. Azure Data Studio 配置步骤
- 安装Kerberos:打开终端,用Homebrew执行:
brew install krb5 - 配置Kerberos配置文件
/etc/krb5.conf,替换为你的域信息:[libdefaults] default_realm = YOUR_DOMAIN.COM dns_lookup_kdc = true dns_lookup_realm = true [realms] YOUR_DOMAIN.COM = { kdc = your-domain-controller.your_domain.com admin_server = your-domain-controller.your_domain.com } [domain_realm] .your_domain.com = YOUR_DOMAIN.COM your_domain.com = YOUR_DOMAIN.COM - 获取Kerberos票据:终端执行以下命令,输入目标域账户密码:
kinit target_username@YOUR_DOMAIN.COM - 打开Azure Data Studio,新建SQL Server连接:
- 输入服务器地址
- 认证类型选择Windows Authentication
- 无需输入用户名密码,直接点击「连接」,程序会自动使用已获取的Kerberos票据完成身份验证。
2. DBeaver 配置步骤
- 先完成上述Kerberos的安装与配置(包括获取票据)
- 打开DBeaver,新建SQL Server连接:
- 输入服务器地址
- 认证类型选择Active Directory - Password
- 输入目标域账户(格式
DOMAIN\username或username@domain.com)和对应密码 - 切换到「驱动属性」标签页,确保:
integratedSecurity设置为trueauthenticationScheme设置为Kerberos(若环境不支持Kerberos,可尝试NTLM)
- 点击「测试连接」,验证是否成功。
如果之前测试失败,大概率是Kerberos配置不完整,或者DBeaver的驱动属性未正确设置,导致客户端仍在尝试SQL身份验证而非Windows集成验证。
内容的提问来源于stack exchange,提问作者Ivan R.
相关产品推荐
相关产品推荐

