Condividi tramite


Risolvere i problemi di connettività SQL con Microsoft Entra Connect

Questo articolo illustra come risolvere i problemi di connettività tra Microsoft Entra Connect e SQL Server.

Lo screenshot seguente mostra un errore tipico, se NON è possibile trovare SQL Server.

Errore SQL

Passaggi per la risoluzione dei problemi

Aprire una finestra di PowerShell con il modulo PowerShell "Esegui come amministratore" e Installa/Importa ADSyncTools di 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 richiede l'aggiornamento a PowerShell 5.0 (WMF 5.0) o versione successiva;
In alternativa, installare l'anteprima del modulo PowerShell PackageManagement - Marzo 2016 per PowerShell 3.0/4.0

  • Mostrare tutti i comandi: Get-Command *Sql* -Module ADSyncTools
  • Eseguire la funzione di PowerShell: Connect-ADSyncToolsSqlDatabase con i parametri seguenti:
    • Server: nome di SQL Server.
    • Istanza (facoltativo): il nome dell'istanza di SQL Server e, facoltativamente, il numero di porta che si vuole usare. Non specificare questo parametro per usare l'istanza predefinita.
    • Porta (facoltativo): porta di SQL Server
    • Nome utente (facoltativo): l'account utente con cui connettersi, se lasciato vuoto l'account connesso corrente viene usato. Se ci si connette a un'istanza remota di SQL Server, questo nome utente deve essere l'account del servizio personalizzato creato per la connettività SQL di Microsoft Entra Connect. Microsoft Entra Connect usa l'account del servizio di sincronizzazione Microsoft Entra Connect per eseguire l'autenticazione a un server SQL remoto.
    • Password (facoltativo): password per il nome utente specificato.

Questa funzione di PowerShell tenta di eseguire l'associazione all'istanza e a SQL Server specificati usando le credenziali passate o usando le credenziali dell'utente corrente. Se SQL Server non è stato trovato, lo script tenta di connettersi al servizio SQL Browser per determinare protocolli e porte abilitati.

Esempio che usa solo un nome del server:


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                        : 

Esempio di utilizzo di un nome server e di un'istanza denominata 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                        : 


Esempio che usa un'istanza DI SQL che non può essere raggiunta. Tenta di eseguire query sul servizio SQL Server Browser e visualizzare le istanze DI SQL disponibili e le rispettive porte.


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


Passaggi successivi