Partager via


Résolvez les problèmes de connectivité SQL avec Microsoft Entra Connect

Cet article explique comment résoudre les problèmes de connectivité entre Microsoft Entra Connect et SQL Server.

La capture d’écran suivante montre une erreur typique qui se produit si le serveur SQL Server est introuvable.

Erreur SQL

Étapes de dépannage

Ouvrez une fenêtre PowerShell avec « Exécuter en tant qu’administrateur » et installez/importez le module PowerShell ADSyncTools.

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Install-Module ADSyncTools
Import-Module ADSyncTools

Remarque

Install-Module nécessite d’effectuer la mise à jour vers PowerShell 5.0 (WMF 5.0) ou version ultérieure
Ou installez Préversion du module PowerShell PackageManagement – Mars 2016 pour PowerShell 3.0/4.0

  • Afficher toutes les commandes : Get-Command *Sql* -Module ADSyncTools
  • Exécutez la fonction PowerShell : Connect-ADSyncToolsSqlDatabase avec les paramètres suivants :
    • Serveur : Nom du serveur SQL Server.
    • Instance (Facultatif) : Nom de l’instance SQL Server et éventuellement le numéro de port que vous souhaitez utiliser. Ne spécifiez pas ce paramètre pour utiliser l’instance par défaut.
    • Port (facultatif) : Port SQL Server
    • Nom d’utilisateur (facultatif) : Compte d’utilisateur avec lequel se connecter, s’il est laissé vide, le compte actuellement connecté est utilisé. Si vous vous connectez à un serveur SQL distant, ce nom d’utilisateur doit être le compte de service personnalisé créé pour la connectivité SQL Microsoft Entra Connect. Microsoft Entra Connect utilise le compte de service Microsoft Entra Connect Sync pour s’authentifier auprès d’un serveur SQL distant.
    • Mot de passe (facultatif) : Mot de passe pour le nom d’utilisateur fourni.

Cette fonction PowerShell tente d’établir une liaison au serveur SQL Server et à l’instance spécifiés en utilisant les informations d’identification passées ou celles de l’utilisateur actuel. Si le serveur SQL Server est introuvable, le script tente de se connecter au service SQL Browser pour déterminer les ports et protocoles activés.

Exemple utilisant uniquement un nom de serveur :


PS C:\> Connect-ADSyncToolsSqlDatabase -Server SQL1.contoso.com
Resolving server address : SQL1.contoso.com
    InterNetworkV6 : fe80::6c90:a995:3e70:ef74%17
    InterNetworkV6 : 2001:4898:e0:66:6c90:a995:3e70:ef74
    InterNetwork : 10.91.26.143

Attempting to connect to SQL1 using a TCP binding for the default instance.
   Data Source=tcp:SQL1.contoso.com\;Integrated Security=True.ConnectionString
   Successfully connected.


StatisticsEnabled                : False
AccessToken                      : 
ConnectionString                 : Data Source=tcp:SQL1\;Integrated Security=True
ConnectionTimeout                : 15
Database                         : master
DataSource                       : tcp:SQL1.contoso.com\
PacketSize                       : 8000
ClientConnectionId               : 23e06ef2-0a38-4f5f-9291-da931de40375
ServerVersion                    : 13.00.4474
State                            : Open
WorkstationId                    : SQL1
Credential                       : 
FireInfoMessageEventOnUserErrors : False
Site                             : 
Container                        : 

Exemple utilisant un nom de serveur et une instance nommée SQL :


PS C:\> Connect-ADSyncToolsSqlDatabase -Server SQL1.contoso.com -Instance SQLINSTANCE1
Resolving server address : SQL1.contoso.com
   InterNetwork: 10.0.100.24 

Attempting to connect to SQL1.contoso.com\SQLINSTANCE1 using a TCP binding.
   Data Source=tcp:SQL1.contoso.com\SQLINSTANCE1;Integrated Security=True
   Successfully connected.


StatisticsEnabled                : False
AccessToken                      : 
ConnectionString                 : Data Source=tcp:SQL1.contoso.com\SQLINSTANCE1;Integrated Security=True
ConnectionTimeout                : 15
Database                         : master
DataSource                       : tcp:SQL1.contoso.com\SQLINSTANCE1
PacketSize                       : 8000
ClientConnectionId               : 2b365b7a-4348-45f6-9314-d6b56db36dbd
ServerVersion                    : 13.00.4259
State                            : Open
WorkstationId                    : SQL1
Credential                       : 
FireInfoMessageEventOnUserErrors : False
Site                             : 
Container                        : 


Exemple utilisant une instance SQL qui ne peut pas être atteinte. Il tente d’interroger le service SQL Server Browser et d’afficher les instances SQL disponibles et les ports respectifs.


PS C:\> Connect-ADSyncToolsSqlDatabase -Server SQL01.Contoso.com -Instance DEFAULT
Resolving server address : SQL01.Contoso.com
   InterNetwork: 10.0.100.24 

Attempting to connect to SQL01.Contoso.com\SQL using a TCP binding.
   Data Source=tcp:SQL01.Contoso.com\SQL;Integrated Security=True
Connect-ADSyncToolsSqlDatabase : Unable to connect using a TCP binding.  A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was 
not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance 
Specified) 
At line:1 char:1
+ Connect-ADSyncToolsSqlDatabase -Server SQL01.Contoso.com -Insta ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ConnectionError: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Connect-ADSyncToolsSqlDatabase
 
TROUBLESHOOTING: Attempting to query the SQL Server Browser service configuration on SQL01.Contoso.com. 

SQL browser response contained 2 instances.
Verifying protocol bindings and port connectivity...
SQLINSTANCE1    : Enabled - port 49823 is assigned and reachable through the firewall
SQL2019         : Enabled - port 50631 is assigned and reachable through the firewall

WHAT TO TRY NEXT: 

Each SQL instance must be bound to an explicit static TCP port and paired with an inbound firewall rule on SQL01.Contoso.com to allow connection. Review the TcpStatus field for each instance and take cor
rective action. 


InstanceName : SQLINSTANCE1
tcp          : 49823
TcpStatus    : Enabled - port 49823 is assigned and reachable through the firewall

InstanceName : SQL2019
tcp          : 50631
TcpStatus    : Enabled - port 50631 is assigned and reachable through the firewall


Étapes suivantes