Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln hjälper dig att lösa problemet där du inte kan ansluta via fjärranslutning 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 antingen Windows- eller SQL Server-autentisering.
Kommentar
Du kommer att märka att de upphöjda användaranslutningarna endast visas i sys.dm_exec_sessions (Transact-SQL) Dynamisk hanteringsvy (DMV) men inte i sys.dm_exec_connections -vyn (Transact-SQL).
Både lokala och fjärranslutna anslutningar med hjälp av protokollet Namngivna pipes samt lokala anslutningar med hjälp av delat minnesprotokoll fortsätter att fungera bra.
Dessutom loggas följande meddelanden i SQL Server Errorlog-filen:
Vid start av SQL Server:
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 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
Kommentar
Som beskrivs i Books Online-avsnittet om sys.tcp_endpoints (Transact-SQL) innehåller den här vyn inte information om de portar och protokoll som SQL Server-instansen för närvarande är konfigurerad att använda. Information om hur du hittar den finns i Konfigurationshanteraren för SQL Server.
Åtgärd
Metod 1: Släpp slutpunkten som orsakar problemet med hjälp av kommandot DROP ENDPOINT (Transact-SQL).
Om du till exempel vill släppa en slutpunkt med namnet
TestEPkan du använda följande kommando:DROP ENDPOINT TestEPMetod 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
TestEPfö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.