Heim >Backend-Entwicklung >Golang >Warum kann mein Go-Programm keine Verbindung zu SQL Server herstellen?

Warum kann mein Go-Programm keine Verbindung zu SQL Server herstellen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-24 13:19:13438Durchsuche

Why Can't My Go Program Connect to SQL Server?

Go mit SQL Server: Verbindung konnte nicht erfolgreich hergestellt werden

Problem:

Bei Verwendung von Go Bei einem SQL Server-Treiber zum Herstellen einer Verbindung zu einer Datenbank tritt ein Fehler auf:

login failed for user 'sakhaloo'

Zusätzlich wird versucht, dies zu tun Das Öffnen der Datenbank mit SQL Server Management Studio schlägt mit folgendem Fehler fehl:

Error:233: 
A connection was successfully established with the server, but then an
error occurred during the login process. (provider: Shared Memory
Provider, error: 0-no process is on the other end of the
pipe.)(Microsoft SQL Server,)

Ursache:

Das Problem ist auf eine Kombination von Faktoren zurückzuführen:

  • Die SQL Server-Instanz ist nicht ordnungsgemäß für TCP-Verbindungen konfiguriert.
  • Das Go-Programm versucht, die Windows-Authentifizierung zu verwenden, ohne die Domäne anzugeben oder Benutzer.
  • Der SQL Server-Benutzer verfügt nicht über die erforderlichen Berechtigungen.

Lösung:

  1. Konfigurieren TCP-Verbindungen für SQL Server:
  • Öffnen Sie die SQL Server-Konfiguration Manager.
  • Netzwerkkonfiguration erweitern > Protokolle für MSSQLSERVER.
  • TCP/IP aktivieren.
  • SQL Server-Dienst neu starten.
  1. Erstellen Sie einen SQL Server-Benutzer mit Berechtigungen:
  • Verwenden Sie SQL Server Management Studio, um eine zu erstellen SQL Server-Benutzer mit den erforderlichen Berechtigungen.
  • Stellen Sie sicher, dass der Benutzer über ausreichende Berechtigungen zum Erstellen und Ändern der Datenbank verfügt.
  1. Geben Sie den SQL Server-Benutzer im Go an Programm:
  • Geben Sie im Go-Programm den SQL Server-Benutzernamen und das Passwort in der Verbindung an Zeichenfolge.
  • Wenn eine Windows-Authentifizierung gewünscht ist, lassen Sie den Benutzernamen und das Kennwort leer, aber stellen Sie sicher, dass die SQL Server-Instanz für die Kerberos-Authentifizierung konfiguriert ist.

Aktualisierte Lösung für vertrauenswürdige Windows-Authentifizierung:

  • Unter Windows, wenn die Benutzer-ID leer ist oder fehlt, Single-Sign-On (vertrauenswürdige Verbindung) wird verwendet.
  • Um die vertrauenswürdige Windows-Authentifizierung zu verwenden, stellen Sie Folgendes im Go-Programm sicher:

    condb, errdb := sql.Open("mssql", "server=servernameorip;user>

Das obige ist der detaillierte Inhalt vonWarum kann mein Go-Programm keine Verbindung zu SQL Server herstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn