Användare kanske inte kan fjärransluta till SQL Server med TCP/IP-protokoll
Den här artikeln hjälper dig att lösa problemet där du inte kan fjärransluta till SQL Server med TCP/IP-protokoll.
Ursprunglig produktversion: SQL Server
Ursprungligt KB-nummer: 2018930
Symptom
När du använder Microsoft SQL Server kan du se ett eller flera av följande symtom:
Endast de användare som har behörigheten KONTROLLSERVER (till exempel medlemmar i den fasta serverrollen syadmin ) kan ansluta via TCP/IP. Användare som inte har den här behörigheten kan inte fjärransluta via TCP/IP-protokoll med windows- eller SQL Server-autentisering.
Obs!
Du kommer att märka att de upphöjda användaranslutningarna endast visas i sys.dm_exec_sessions (Transact-SQL) Dynamic Management View (DMV) men inte i sys.dm_exec_connections (Transact-SQL)- vyn.
Både lokala anslutningar och fjärranslutningar med hjälp av protokollet Namngivna pipes samt lokala anslutningar med protokoll för delat minne fortsätter att fungera bra.
Dessutom loggas följande meddelanden i filen SQL Server Errorlog:
Vid SQL Server start:
Fel: 26023, Allvarlighetsgrad: 16, Tillstånd: 1.
Serverns TCP-provider kunde inte lyssna på ['any'ipv6<> 1963]. Tcp-porten används redan.
Fel: 9692, Allvarlighetsgrad: 16, Tillstånd: 1.
Service Broker-protokolltransporten kan inte lyssna på port 1963 eftersom den används av en annan process.För misslyckade inloggningar:
SQL Server 2008 och senare versioner:
Fel: 18456, Allvarlighetsgrad: 14, Tillstånd: 11.
Inloggningen misslyckades för användaren "MyDomain\TestAcc". Orsak: Tokenbaserad serveråtkomstverifiering misslyckades med ett infrastrukturfel. Sök efter tidigare fel.
Orsak
Felet uppstår när du konfigurerar en TCP-slutpunkt för Service Broker med samma port som den SQL Server instansen är konfigurerad att använda. Du kan hämta listan över slutpunkter genom att köra följande fråga:
SELECT * FROM sys.tcp_endpoints
Obs!
Som förklaras i Books Online-avsnittet om sys.tcp_endpoints (Transact-SQL) innehåller den här vyn inte information om portar och protokoll som SQL Server instans för närvarande är konfigurerad att använda. Mer information finns i Konfigurationshanteraren för SQL Server.
Åtgärd
Metod 1: Släpp slutpunkten som orsakar problemet med kommandot DROP ENDPOINT (Transact-SQL).
Om du till exempel vill släppa en slutpunkt med namnet
TestEP
kan du använda följande kommando:DROP ENDPOINT TestEP
Metod 2: Ändra slutpunkten så att den använder en annan port med kommandot ALTER ENDPOINT (Transact-SQL).
Om du till exempel vill ändra en slutpunkt med namnet
TestEP
för att använda en annan port kan du använda följande kommando:ALTER ENDPOINT TestEP as tcp (listener_port=1980)
Mer information
Liknande problem kan också uppstå med andra TCP-slutpunkter som de som skapats för databasspegling, och felmeddelandena vid SQL Server start ändras i enlighet med detta.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för