Compartir vía


Solución de problemas de conectividad de SQL con Microsoft Entra Connect

En este artículo se explica cómo solucionar problemas de conectividad entre Microsoft Entra Connect y SQL Server.

En la captura de pantalla siguiente se muestra un error típico, si no se encuentra SQL Server.

Error de SQL

Pasos para solucionar problemas

Abra una ventana de PowerShell con el módulo "Ejecutar como administrador" e Instalar e importar ADSyncTools de PowerShell.

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

Nota:

Install-Module requiere la actualización a PowerShell 5.0 (WMF 5.0) o una versión posterior;
O instale la versión preliminar del módulo PowerShell de PackageManagement - marzo de 2016 para PowerShell 3.0/4.0

  • Mostrar todos los comandos: Get-Command *Sql* -Module ADSyncTools
  • Ejecute la función de PowerShell: Connect-ADSyncToolsSqlDatabase con los siguientes parámetros:
    • Servidor: el nombre de SQL Server.
    • Instancia (opcional): el nombre de la instancia de SQL Server y, opcionalmente, el número de puerto que desea usar. No especifique este parámetro para que use la instancia predeterminada.
    • Puerto (opcional): el puerto de SQL Server
    • Nombre de usuario (opcional): la cuenta de usuario con la que conectarse, si se deja en blanco, se usa la cuenta de inicio de sesión actual. Si se conecta a un servidor SQL Server remoto, este nombre de usuario debe ser la cuenta de servicio personalizada creada para la conectividad SQL de Microsoft Entra Connect. Microsoft Entra Connect usa la cuenta de servicio de sincronización de Microsoft Entra Connect para autenticarse en un servidor SQL remoto.
    • Contraseña (opcional): contraseña para el nombre de usuario proporcionado.

Esta función de PowerShell intenta enlazar con la instancia y SQL Server especificadas mediante las credenciales pasadas o usando las credenciales del usuario actual. Si no se encuentra SQL Server, el script intenta conectarse al servicio SQL Browser para determinar los protocolos y puertos habilitados.

Ejemplo con solo un nombre de servidor:


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                        : 

Ejemplo con un nombre de servidor y una instancia con nombre de 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                        : 


Ejemplo con una instancia de SQL que no se puede acceder. Intenta consultar el servicio SQL Server Browser y mostrar las instancias de SQL disponibles y los puertos correspondientes.


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


Pasos siguientes