gMSA を使用したSQL Serverセットアップとアップグレードの失敗のトラブルシューティング

適用対象: WindowsのSQL Server

まとめ

この記事は、SQL ServerまたはSQL Server エージェント サービスのグループ管理サービス アカウント (gMSA) をセットアップが拒否した場合、または検証できない場合に発生するSQL Serverセットアップとアップグレードの失敗のトラブルシューティングに役立ちます。 ここでは、マネージド パスワードを取得する権限があるプリンシパルを確認する方法、パスワード取得をテストする方法、さらに Active Directory レプリケーション、DNS、セキュア チャネル、および時刻同期の問題を解決する方法について説明します。

開始する前に、前提条件を確認し、「gMSA を使用したSQL Serverセットアップ、起動、認証エラーのトラブルシューティング」のクイック検証チェックリストを実行します。

Symptoms

  • セットアップでは、サービス アカウントが無効であるか、アカウントの検証に失敗したことを報告します。
  • gMSA は存在しますが、セットアップでSQL ServerまたはSQL Server エージェントを構成することはできません。
  • このエラーは、インストール、修復、追加機能、追加ノード、またはアップグレード中に発生します。

原因

セットアップでは、アカウントを解決し、ホストがマネージド パスワードを取得して使用できることを検証する必要があります。 一般的な原因としては、不完全なActive Directoryレプリケーション、正しくない承認されたプリンシパル、ドメイン接続エラーなどがあります。

サービス アカウントに関連しないセットアップ エラーには、個別のガイダンスがあります。 続行する前に、セットアップ ログから、最初のエラーがサービス アカウント検証エラーであることを確認します。 セットアップエラーの一般的なトリアージについては、SQL Serverインストール エラーを参照してください。ログの場所と構造については、「セットアップ ログ ファイルの表示と読み取り」SQL Server参照してください。

gMSA のセットアップとアップグレードの失敗を診断する

  1. 影響を受けるホストで クイック検証チェックリスト コマンドを実行します。
  2. ホスト コンピューター アカウントまたは承認されたグループが PrincipalsAllowedToRetrieveManagedPasswordに一覧表示されていることを確認します。
  3. Summary.txt と Detail.txt で、最初のサービス アカウントの検証失敗を検索します。

予期される結果:Get-ADServiceAccount は目的のアカウントと承認されたプリンシパルを返し、 Test-ADServiceAccount は Trueを返します。

gMSA のセットアップとアップグレードの失敗を解決する

特定した条件に一致するソリューションを使用します。 Test-ADServiceAccountが影響を受けるホスト上のTrueを返した後にのみ、セットアップを再試行します。

gMSA パスワードを取得する権限を持つプリンシパルを修正する

  1. Active Directory PowerShell モジュールがインストールされている管理コンピューターから、現在の構成を確認します。

    Get-ADServiceAccount -Identity 'SQLgMSA' `
      -Properties PrincipalsAllowedToRetrieveManagedPassword |
      Select-Object Name, PrincipalsAllowedToRetrieveManagedPassword
    
  2. 影響を受けるSQL Serverコンピューター アカウント、またはそのコンピューター アカウントを含むセキュリティ グループが一覧表示されていることを確認します。 影響を受けるSQL Serverホストまたは承認済みのセキュリティ グループがPrincipalsAllowedToRetrieveManagedPasswordに一覧表示されていない場合は、組織の承認済みのActive Directory プロセスを使用して gMSA 構成を更新します。

    • 組織がActive Directoryセキュリティ グループを介して承認されたホストを管理している場合は、Active Directory管理者に、影響を受けるコンピューター アカウントをその承認済みグループに追加させます。 例えば次が挙げられます。

      Add-ADGroupMember -Identity 'SQL-gMSA-Hosts' `
        -Members 'SQL01$'
      
    • 組織が gMSA でプリンシパルを直接承認する場合は、Active Directory管理者に、承認されたプリンシパルの完全な一覧で gMSA を更新させます。 例えば次が挙げられます。

      Set-ADServiceAccount -Identity 'SQLgMSA' `
        -PrincipalsAllowedToRetrieveManagedPassword `
        'CONTOSO\SQL-gMSA-Hosts'
      

      Caution

      PrincipalsAllowedToRetrieveManagedPassword値は、完全な承認済みプリンシパル リストです。 Set-ADServiceAccountを使用する前に、既存の値を確認し、承認された状態を維持する必要があるすべてのプリンシパルを含めます。 他のSQL Serverホストまたはクラスター ノードを意図せずに削除しないでください。

  3. セキュリティ グループ メンバーシップを変更した場合は、組織の変更プロセスに従って、影響を受けるコンピューターのグループ メンバーシップを更新します。

  4. SQL Serverを実行できるすべてのホストで、結果を確認します。

    Get-ADServiceAccount -Identity 'SQLgMSA' `
      -Properties PrincipalsAllowedToRetrieveManagedPassword
    
    Test-ADServiceAccount -Identity 'SQLgMSA'
    

    予想される結果: 目的のコンピューター アカウントまたは承認済みグループが PrincipalsAllowedToRetrieveManagedPasswordに表示され、 Test-ADServiceAccount は Trueを返します。

詳細については、以下の記事を参照してください。

ディレクトリ レプリケーション、DNS、セキュリティで保護されたチャネル、またはドメイン コントローラーの接続エラーを解決する

  1. 影響を受ける SQL Server ホストで、管理者特権の PowerShell セッションから次のチェックを実行します。 contoso.comをActive Directoryドメイン名に置き換えます。

    Resolve-DnsName -Name '_ldap._tcp.dc._msdcs.contoso.com' `
      -Type SRV
    
    nltest /dsgetdc:contoso.com
    nltest /sc_verify:contoso.com
    w32tm /query /status
    
  2. チェックで検出された条件を修正してください。

    • DNS 解決またはドメイン コントローラーの検出に失敗した場合は、ホストの DNS クライアント構成を修正し、Active Directory ドメインを解決できる DNS サーバーが使用されていることを確認します。

    • nltest /sc_verify でセキュア チャネルの障害が報告された場合は、組織で承認された手順に従って、Windows または Active Directory の管理者にコンピューターのドメイン セキュア チャネルを修復してもらってください。

    • 時刻の状態が異常な場合は、Active Directory認証は正確な時刻に依存するため、再テストする前に時刻同期を正しく行ってください。

    • 承認されたプリンシパルの変更が、SQL Server ホストがアクセスするドメイン コントローラーに表示されない場合は、Active Directory管理者にレプリケーションを確認させます。 例えば次が挙げられます。

      repadmin /replsummary
      repadmin /showrepl *
      

      Active Directoryレプリケーションは、ネットワーク接続、DNS 名解決、認証と承認、時刻の精度、ディレクトリ データベース、およびレプリケーション トポロジによって異なります。 repadmin /showreplとrepadmin /replsummaryを使用して、Active Directoryレプリケーションエラーを特定します。

  3. 基になる条件が修正されたら、 Test-ADServiceAccount再実行します。

    Test-ADServiceAccount -Identity 'SQLgMSA'
    

    予期される結果: ドメイン コントローラーが検出され、セキュリティで保護されたチャネルの検証が成功し、時刻の同期が正常であり、接続されたドメイン コントローラーから gMSA 構成が表示され、Test-ADServiceAccountTrueが返されます。

診断データの収集

これらの手順を完了しても gMSA を検証できない場合は、影響を受けるホストから同じエラー間隔で診断データを収集します。 収集する gMSA 固有の証拠と標準的なSQL Server ログについては、gMSA トラブルシューティングの概要の診断データの収集に関するページを参照してください。 そのデータを使用して調査を続行するか、サポート ケースを開きます。