Go avec SQL Server : impossible de se connecter avec succès
Problème :
Lors de l'utilisation de Go avec un pilote SQL Server pour se connecter à une base de données, une erreur se produit :
login failed for user 'sakhaloo'
De plus, les tentatives l'ouverture de la base de données à l'aide de SQL Server Management Studio échoue avec l'erreur :
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,)
Cause :
Le problème provient d'une combinaison de facteurs :
- L'instance SQL Server n'est pas correctement configurée pour les connexions TCP.
- Le programme Go tente d'utiliser l'authentification Windows sans spécifier le domaine ou utilisateur.
- L'utilisateur SQL Server ne dispose pas des autorisations nécessaires.
Solution :
- Configurer les connexions TCP pour SQL Server :
- Ouvrir la configuration de SQL Server Manager.
- Développez Configuration réseau > Protocoles pour MSSQLSERVER.
- Activez TCP/IP.
- Redémarrez le service SQL Server.
- Créez un utilisateur SQL Server avec des autorisations :
- Utilisez SQL Server Management Studio pour créer un fichier SQL Utilisateur du serveur avec les autorisations nécessaires.
- Assurez-vous que l'utilisateur dispose de privilèges suffisants pour créer et modifier la base de données.
- Spécifiez l'utilisateur du serveur SQL dans le programme Go :
- Dans le programme Go, précisez le nom d'utilisateur et le mot de passe SQL Server dans la connexion string.
- Si l'authentification Windows est souhaitée, laissez le nom d'utilisateur et le mot de passe vides, mais assurez-vous que l'instance SQL Server est configurée pour l'authentification Kerberos.
Solution mise à jour pour l'authentification Windows de confiance :
- Sous Windows, si l'identifiant utilisateur est vide ou manquant, l'authentification unique (connexion approuvée) est utilisée.
-
Pour utiliser l'authentification Windows approuvée, assurez-vous de ce qui suit dans le programme Go :
condb, errdb := sql.Open("mssql", "server=servernameorip;user>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn