Устранение неполадок с подключением SQL с помощью Microsoft Entra Connect
В этой статье объясняется, как устранять проблемы с подключением между Microsoft Entra Connect и SQL Server.
На следующем снимка экрана показана обычная ошибка, если не удается найти SQL Server.
Действия по устранению неполадок
Откройте окно PowerShell с правами администратора и установите/импортируйте модуль PowerShell ADSyncTools.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Install-Module ADSyncTools
Import-Module ADSyncTools
Примечание.
Для использования Install-Module требуется обновление до PowerShell 5.0 (WMF 5.0) или более поздней версии.
Или установите предварительную версию модуля PowerShell PackageManagement — март 2016 г. для PowerShell 3.0/4.0
-
Отобразите все команды:
Get-Command *Sql* -Module ADSyncTools
. -
Выполните функцию PowerShell: с помощью следующих параметров:
Connect-ADSyncToolsSqlDatabase
- Сервер: имя сервера SQL.
- Экземпляр (необязательно): имя экземпляра SQL Server и, при необходимости, номер порта, который вы хотите использовать. Не указывайте этот параметр для использования экземпляра по умолчанию.
- Порт (необязательно): порт SQL Server
- Имя пользователя (необязательно): учетная запись пользователя для подключения, если оставить это поле пустым, будет использована текущая учетная запись, вошедшая в систему. Если вы подключаетесь к удаленному серверу SQL Server, это имя пользователя должно быть пользовательской учетной записью службы, созданной для Microsoft Entra Connect SQL Connectivity. Microsoft Entra Connect использует учетную запись службы синхронизации Microsoft Entra Connect для проверки подлинности на удаленном сервере SQL Server.
- Пароль (необязательно): пароль для предоставленного имени пользователя.
Эта функция PowerShell пытается привязаться к указанному SQL Server и экземпляру, используя переданные учетные данные либо учетные данные текущего пользователя. Если не удается найти SQL Server, скрипт пытается подключиться к службе браузера SQL, чтобы определить включенные протоколы и порты.
Пример с использованием только имени сервера.
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 :
Пример использования имени сервера и именованного экземпляра 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 :
Пример использования экземпляра SQL, который не может быть достигнут. Он пытается выполнить запрос к службе браузера SQL Server и отобразить доступные экземпляры SQL и соответствующие порты.
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