J'ai parcouru tous les exemples que je pouvais trouver en ligne pour la création d'applications basées sur des conteneurs Docker. Je voudrais exécuter deux services s'exécutant dans deux conteneurs docker:
Travail facile et nombreux exemples. Cependant, dans tous les exemples, vous devez utiliser l'authentification SQL et fournir un mot de passe SA codé en dur en tant que variable d'environnement lors de l'exécution du conteneur de serveur SQL. Vous devez également coder en dur le mot de passe SA dans la chaîne de connexion du code ASP.Net (ou le fournir également d'une autre manière dans un fichier de configuration, etc.).
En bout de ligne, dans tous les exemples, le mot de passe est codé en dur quelque part.
Dans la plupart des applications que nous développons actuellement, nous utilisons plutôt l'authentification Windows ou un compte de service géré groupé. Mais pour autant que je sache, vous ne pouvez pas ajouter de conteneur Windows à un domaine. Le serveur SQL ne faisant pas partie du domaine Windows, je ne vois donc pas comment utiliser l'authentification Windows ici.
Alors, est-ce que quelqu'un a une alternative au codage en dur des mots de passe de cette façon?
Je traite exactement du même problème. Ici est la procédure la plus complète que j'ai trouvée. L'astuce consiste à utiliser gMSA.
Mais, comme JanneRantala l’a dit à la fin, j’ai le même problème lorsque je tente d’ajouter un nouvel utilisateur à la base de données:
Msg 15401, niveau 16, état 1, ligne 3 Utilisateur ou groupe Windows NT "VOTRE_DOMAIN\gmsa $" introuvable. Vérifiez le nom à nouveau.
L'authentification Windows est automatiquement activée dans les conteneurs Windocks SQL Server. Voir ici pour plus de détails. Les conteneurs SQL Server créés dans Windocks sont des instances nommées SQL Server créées automatiquement à partir du service SQL par défaut déjà installé sur Windows Server (2012 R2 ou 2016). Tous les comptes Windows de l'instance par défaut sont automatiquement activés dans les instances de conteneur.
Voici comment faire pour que cela fonctionne. Procédure pas à pas des conteneurs Windows
Cela ne fonctionnera pas si votre SQL s'exécute également dans un conteneur, car le serveur SQL lui-même doit faire partie d'Active Directory pour pouvoir utiliser les comptes GMSA.