You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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凭据管理器预设凭据:
    1. 打开「控制面板」→「凭据管理器」→「Windows凭据」
    2. 点击「添加Windows凭据」,输入SQL Server的服务器名称、目标域账户(格式DOMAIN\username)和密码
    3. 后续启动客户端连接该服务器时,会自动使用预设的域账户身份。

错误日志分析(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设置为true
      • authenticationScheme设置为Kerberos(若环境不支持Kerberos,可尝试NTLM)
    • 点击「测试连接」,验证是否成功。

如果之前测试失败,大概率是Kerberos配置不完整,或者DBeaver的驱动属性未正确设置,导致客户端仍在尝试SQL身份验证而非Windows集成验证。

内容的提问来源于stack exchange,提问作者Ivan R.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 05:00:20