Rozwiązywanie problemów z łącznością SQL z programem Microsoft Entra Connect
W tym artykule wyjaśniono, jak rozwiązywać problemy z łącznością między programem Microsoft Entra Connect i programem SQL Server.
Poniższy zrzut ekranu przedstawia typowy błąd, jeśli nie można odnaleźć programu SQL Server.
Kroki rozwiązywania problemów
Otwórz okno programu PowerShell z modułem "Uruchom jako administrator" i zainstaluj/Zaimportuj moduł ADSyncTools programu PowerShell.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Install-Module ADSyncTools
Import-Module ADSyncTools
Uwaga
Install-Module wymaga aktualizacji do programu PowerShell 5.0 (WMF 5.0) lub nowszego;
Lub zainstaluj moduł PackageManagement PowerShell w wersji zapoznawczej — marzec 2016 r. dla programu PowerShell 3.0/4.0
- Pokaż wszystkie polecenia:
Get-Command *Sql* -Module ADSyncTools
- Wykonaj funkcję programu PowerShell:
Connect-ADSyncToolsSqlDatabase
przy użyciu następujących parametrów:- Serwer: nazwa programu SQL Server.
- Wystąpienie (opcjonalnie): nazwa wystąpienia programu SQL Server i opcjonalnie numer portu, którego chcesz użyć. Nie określaj tego parametru, aby używać wystąpienia domyślnego.
- Port (opcjonalnie): port programu SQL Server
- Nazwa użytkownika (opcjonalnie): konto użytkownika do nawiązania połączenia, jeśli pozostawiono puste bieżące zalogowane konto. Jeśli łączysz się ze zdalnym programem SQL Server, ta nazwa użytkownika powinna być niestandardowym kontem usługi utworzonym dla usługi Microsoft Entra Connect SQL Connectivity. Program Microsoft Entra Connect używa konta usługi Microsoft Entra Connect Sync do uwierzytelniania w zdalnym serwerze SQL.
- Hasło (opcjonalnie): hasło dla podanej nazwy użytkownika.
Ta funkcja programu PowerShell próbuje powiązać z określonym programem SQL Server i wystąpieniem przy użyciu poświadczeń przekazanych lub użyć poświadczeń bieżącego użytkownika. Jeśli nie można odnaleźć programu SQL Server, skrypt próbuje nawiązać połączenie z usługą SQL Browser, aby określić włączone protokoły i porty.
Przykład użycia tylko nazwy serwera:
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 :
Przykład użycia nazwy serwera i wystąpienia nazwanego 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 :
Przykład użycia wystąpienia SQL, do którego nie można uzyskać dostępu. Próbuje wysłać zapytanie do usługi SQL Server Browser i wyświetlić dostępne wystąpienia SQL i odpowiednie porty.
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