Compartilhar via


Solucionar problemas de conectividade do SQL com o Microsoft Entra Connect

Este artigo explica como solucionar problemas de conectividade entre o Microsoft Entra Connect e o SQL Server.

A captura de tela a seguir mostra um erro típico, se o SQL Server não puder ser encontrado.

Erro de SQL

Etapas para solucionar problemas

Abra uma janela do PowerShell com "Executar como administrador" e instale/importe o módulo do PowerShell do ADSyncTools.

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

Observação

O Módulo de Instalação requer a atualização para PowerShell 5.0 (WMF 5.0) ou posterior;
Ou instale a Versão prévia do módulo PackageManagement do PowerShell – de março de 2016 para o PowerShell 3.0/4.0

  • Mostrar todos os comandos: Get-Command *Sql* -Module ADSyncTools
  • Execute a função do PowerShell: Connect-ADSyncToolsSqlDatabase com os seguintes parâmetros:
    • Servidor: O nome do SQL Server.
    • Instância (Opcional): O nome da Instância do SQL Server e, opcionalmente, o número da Porta que você gostaria de usar. Não especifique esse parâmetro para usar a instância padrão.
    • Porta (Opcional): A porta do SQL Server
    • Nome de usuário (Opcional): A conta de usuário com a qual se conectar; se deixada em branco, será usada a conta atual conectada. Se você estiver se conectando a um SQL Server remoto, esse nome de usuário deverá ser a conta de serviço personalizada criada para o Microsoft Entra Connect SQL Connectivity. O Microsoft Entra Connect usa a conta de serviço Microsoft Entra Connect Sync para se autenticar em um servidor SQL remoto.
    • Senha (Opcional): Senha para o Nome de Usuário fornecido.

Essa função do PowerShell tenta se associar ao SQL Server e à Instância especificadas usando as credenciais passadas ou usar as credenciais do usuário atual. Se o SQL Server não puder ser encontrado, o script tentará se conectar ao serviço do SQL Browser para determinar os protocolos e as portas habilitadas.

Exemplo ao usar apenas um nome 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                        : 

Exemplo usando um nome de Servidor e uma instância nomeada 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                        : 


Exemplo de uso de uma Instância SQL que não pode ser acessada. Ele tenta consultar o serviço do SQL Server Browser e exibir as Instâncias SQL disponíveis e as respectivas portas.


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


Próximas etapas