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

如何在新建域中配置组托管服务账户(gMSA)并解决SQL相关问题?

一、将组托管服务账户(gMSA)添加至新建域、加入安全组并分配给计算机组的步骤
  1. 前置准备:确保域控制器已安装AD PowerShell模块,操作账户拥有域管理员权限。
  2. 创建gMSA账户
    • 以域管理员身份打开PowerShell,执行命令:
      New-ADServiceAccount -Name <gMSA账户名> -DNSHostName <gMSA的DNS主机名> -ManagedPasswordIntervalInDays 30 -Enabled $true
      
      示例:New-ADServiceAccount -Name SQLgMSA -DNSHostName SQLgMSA.contoso.com -ManagedPasswordIntervalInDays 30 -Enabled $true
  3. 创建/选择目标安全组
    • 若需新建安全组,执行:
      New-ADGroup -Name <安全组名> -GroupCategory Security -GroupScope Global -SamAccountName <安全组SAM账户名>
      
      示例:New-ADGroup -Name SQLServersGroup -GroupCategory Security -GroupScope Global -SamAccountName SQLServersGroup
  4. 将gMSA加入安全组
    • 执行命令(注意gMSA账户名后需加$):
      Add-ADGroupMember -Identity <安全组名> -Members <gMSA账户名>$
      
      示例:Add-ADGroupMember -Identity SQLServersGroup -Members SQLgMSA$
  5. 授权计算机组获取gMSA密码
    • 获取目标计算机组对象,更新gMSA的授权属性:
      $computerGroup = Get-ADGroup -Identity <计算机组名>
      Set-ADServiceAccount -Identity <gMSA账户名> -PrincipalsAllowedToRetrieveManagedPassword $computerGroup
      
      示例:$computerGroup = Get-ADGroup -Identity SQLServerComputers; Set-ADServiceAccount -Identity SQLgMSA -PrincipalsAllowedToRetrieveManagedPassword $computerGroup
  6. 在目标计算机上安装gMSA
    • 登录目标计算机,以本地管理员身份运行PowerShell:
      Install-ADServiceAccount -Identity <gMSA账户名>
      
    • 验证安装:Test-ADServiceAccount <gMSA账户名>,返回True即为成功。
二、SQL Server使用gMSA运行服务的完整步骤

1. 为gMSA配置Kerberos功能

  • 为gMSA注册SQL Server的服务主体名称(SPN),确保Kerberos身份验证正常:
    setspn -A MSSQLSvc/<SQL服务器FQDN>:<端口> <gMSA账户名>$
    setspn -A MSSQLSvc/<SQL服务器NetBIOS名>:<端口> <gMSA账户名>$
    
    示例(默认端口1433):
    setspn -A MSSQLSvc/SQL01.contoso.com:1433 SQLgMSA$
    setspn -A MSSQLSvc/SQL01:1433 SQLgMSA$
    
  • 验证SPN:setspn -L <gMSA账户名>$,确认已注册的MSSQLSvc条目存在。

2. 创建域安全组并添加SQL服务器

  • 新建安全组(若未创建):
    New-ADGroup -Name SQLServiceHosts -GroupCategory Security -GroupScope DomainLocal -SamAccountName SQLServiceHosts
    
  • 将运行SQL Server的计算机加入该组:
    Add-ADGroupMember -Identity SQLServiceHosts -Members <计算机名>$
    
    示例:Add-ADGroupMember -Identity SQLServiceHosts -Members SQL01$

3. 授权安全组获取gMSA密码

  • 更新gMSA的授权属性,允许组内计算机获取密码:
    $securityGroup = Get-ADGroup -Identity SQLServiceHosts
    Set-ADServiceAccount -Identity SQLgMSA -PrincipalsAllowedToRetrieveManagedPassword $securityGroup
    

4. 在SQL服务器上安装gMSA

  • 登录SQL服务器,以本地管理员身份运行PowerShell:
    Install-ADServiceAccount -Identity SQLgMSA
    
  • 验证:Test-ADServiceAccount SQLgMSA,返回True即为成功。

5. 配置SQL Server服务使用gMSA

  • 打开SQL Server配置管理器,找到SQL Server服务下的数据库引擎服务。
  • 右键点击服务选择属性,切换到登录选项卡。
  • 在账户名中输入域\<gMSA账户名>(无需加$),密码留空,点击应用。
  • 重启SQL Server数据库引擎服务。

6. 解决分配gMSA时的初始WMI错误

  • 常见原因:SQL Server配置管理器的WMI权限不足,或gMSA未正确安装。
  • 解决步骤:
    1. 检查WMI命名空间权限:
      • 打开wmimgmt.msc,右键点击WMI控制(本地)选择属性。
      • 切换到安全选项卡,展开Root\Microsoft\SqlServer\ComputerManagement<版本号>(如SQL Server 2019对应15),点击安全。
      • 添加当前操作账户,授予读取和执行方法权限。
    2. 重新注册WMI组件:
      mofcomp "C:\Program Files\Microsoft SQL Server\<版本号>\Shared\sqlmgmproviderxpsp2up.mof"
      
      版本号对应:2019=150,2017=140,2016=130,以此类推。
    3. 重启WMI服务:
      net stop winmgmt
      net start winmgmt
      
    4. 再次尝试配置gMSA,若仍报错,重新验证gMSA安装状态和计算机的安全组成员身份。

内容的提问来源于stack exchange,提问作者Jamie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 17:45:30