sql >> Database >  >> Database Tools >> SSMS

Externe verbinding met MS SQL - Fout bij gebruik van pyodbc versus succes bij gebruik van SQL Server Management Studio

"Maar waarom...?"

Voor degenen die geïnteresseerd zijn in waarom SQL Server Management Studio (SSMS) kan verbinding maken met servername\instance terwijl andere applicaties (zoals onze pyodbc-apps) dat niet kunnen, komt dat omdat SSMS een MRU-lijst (meest recent gebruikt) met poortnummers bijhoudt in het Windows-register op

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib\LastConnect

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSSQLServer\Client\SuperSocketNetLib\LastConnect

Elke MRU-invoer (registerwaarde) ziet er ongeveer zo uit:

Name: PANORAMA\SQLEXPRESS
Type: REG_SZ 
Data: -1006030326:tcp:PANORAMA,52865

Zodra SSMS met succes verbinding heeft gemaakt op instantienaam via de SQL Browser-service op de externe computer, kan deze verbinding blijven maken op instantienaam, zelfs als de SQL-browser niet langer actief is op de externe computer, op voorwaarde dat het poortnummer niet is gewijzigd. Apps die deze MRU-lijst niet gebruiken (zoals onze pyodbc-app) moeten de SQL Browser-service op de externe computer laten draaien elke keer dat ze verbinding willen maken op instantienaam.

Het meest voorkomende scenario:

  • Ik wil verbinding maken met YOUR-PC\SQLEXPRESS . Ik probeer dat te doen vanuit SSMS op MY-PC , maar het werkt niet omdat de SQL-browser is geïnstalleerd met "Start Mode" ingesteld op "Manual" op YOUR-PC .
  • Ik vraag je om de SQL Browser-service te starten op YOUR-PC , en u houdt zich eraan, maar u start gewoon de service en vergeet de instelling "Startmodus" te wijzigen in "Automatisch".
  • Ik kan verbinding maken via SSMS (waarbij de YOUR-PC\SQLEXPRESS poort in de MRU). Mijn python-app kan ook verbinding maken.
  • Na de volgende keer YOUR-PC opnieuw wordt opgestart, kan ik verbinding maken via SSMS (via de MRU) maar mijn python-app kan dat niet (omdat de SQL Browser-service niet langer draait op YOUR-PC ).


  1. phpmyadmin error 13 toestemming geweigerd

  2. csv importeren van unicode naar utf8 phpmyadmin

  3. Kan een opgeslagen procedure niet aan de database toevoegen vanwege een versleutelingsbericht

  4. phpmyadmin:maak een functie aan