J'ai une instance nommée SQL Server 2005 utilisant l'authentification Windows avec des groupes de domaines servant de connexions. Les structures de domaine sont les suivantes:
Forest1 Forest2
/ \ |
Domain1 Domain2 Domain3
Les objets sont organisés dans les domaines suivants:
Forest1.Domain1
Forest1.Domain2
Forest2.Domain3
Tous mes utilisateurs existent dans Domain1
et Domain3
mais la boîte SQL Server existe dans Domain2
. En tant que tel, mes connexions sont des groupes de domaines dans Domain2
. Lorsqu'un utilisateur dans Domain1
est ajouté à un groupe local de domaine dans Domain2
et tente de se connecter en utilisant le protocole TCP/IP à l'instance SQL Server, il reçoit le message d'erreur suivant:
Impossible de se connecter à <instance>. La connexion a échoué pour l'utilisateur "Domaine1\nom_utilisateur". (Microsoft SQL Server, erreur: 18456)
J'ai essayé d'autres choses:
Si j'ajoute explicitement l'utilisateur comme identifiant, il peut se connecter.
Si j'ajoute un Domain1
groupe global dont l'utilisateur est explicitement membre en tant que login, il peut se connecter.
Si j'ajoute un Domain1
groupe global dont l'utilisateur est membre en tant que membre de Domain2
groupe local de domaine utilisé comme identifiant, il ne peut pas se connecter.
EDIT: Si j'ajoute le Domain2
groupe local de domaine au groupe Demote Desktop Users sur le Domain2
serveur hébergeant l'instance SQL Server, le Domain1
l'utilisateur peut se connecter avec succès au serveur - je peux également me connecter localement à l'instance en tant que Domain1
utilisateur (mais pas à distance).
EDIT: Si j'ajoute le Domain2
groupe local de domaine à un groupe de serveurs local et créez une connexion SQL Server pour ce groupe de serveurs local, le Domain1
l'utilisateur ne peut toujours pas se connecter à l'instance à distance.
EDIT: Si je change le protocole du réseau de connexion en "Named Pipes", le Domain1
l'utilisateur peut se connecter à distance avec succès.
D'après ce que je comprends (référence à ces articles TechNet: portée du groupe et groupes imbriqués ), le groupe de domaine DOIT être un groupe local de domaine afin d'inclure des utilisateurs des deux Domain1
et Domain3
.
Comment puis-je utiliser un groupe de domaines comme connexion SQL Server à l'aide de l'authentification Windows de sorte que le groupe de domaines puisse contenir des utilisateurs des deux Domain1
et Domain3
et les utilisateurs peuvent se connecter à distance via TCP/IP?
PLUS DE NOTES
Domain1
[~ # ~] mise à jour [~ # ~]
Modification du compte de service d'instance de service SQL pour qu'il soit dans Domain2
semble avoir résolu le problème. Je vais enquêter plus avant et publier mes résultats!
Comme mentionné dans la mise à jour de ma question, changer le compte de service pour qu'il soit en Domain2
A résolu le problème. Que se passait-il donc?
Le problème - expliqué
D'après ce que je peux dire (également avec l'aide d'un représentant Microsoft), car le compte de service était à l'origine un utilisateur Domain1
, Il n'a pas pu déterminer de quels groupes locaux de domaine l'utilisateur auquel se connecter est membre lorsque l'utilisateur s'authentifie via Kerberos. Le principal problème que c'était un problème Kerberos était lorsque je me suis connecté avec succès en utilisant "Named Pipes" car cela utilise l'authentification NTLM.
Solution globale
Pour tout rassembler, pour ajouter avec succès des utilisateurs de Domain1
Et Domain3
En tant que membres de groupes dans Domain2
Afin que les groupes puissent être utilisés comme connexions SQL Server avec authentification Windows, voici une liste d'exigences (ou du moins fortement encouragées):
Domain2
Approuve Domain1
Et Domain3
Domain2
Doivent avoir la portée "Domaine local" Domain1
Et Domain3
Domain2
Non administratif comme identité de compte de service Domain2
.Domain2
Domain2
À être approuvé pour la délégation Domain2
Souhaités et tous les membres Domain1
Ou Domain3
Devraient pouvoir se connecter à distance!Remarque
Comme toujours pour toute activité de réseau distant, vérifiez vos pare-feu pour vous assurer que vos ports SQL Server ne sont pas bloqués. Bien que le port par défaut soit 1433, vérifiez que votre port est en clair.
Ok, j'ai également rencontré le problème en 2017, difficile de trouver une solution, enfin, je ne le trouve que pour mon cas.
Mon environnement,
Forêt 1 (Domaine1) --- CONFIANCE --- Forêt 2 (Domaine2)
J'ai un compte de service dans Domain2 essayant de me connecter au serveur SQL dans Domain1 en utilisant l'authentification Windows.
Et, le message d'erreur suivant apparaît.
Échec de la connexion. La connexion provient d'un domaine non approuvé et ne peut pas être utilisée avec l'authentification Windows. (Microsoft SQL Server, erreur: 18452)
La solution est assez simple, sur domain1, ouvrez l'outil des domaines et approbations Active Directory,
Approbations -> approbations sortantes -> propriétés -> authentification -> passer à "Authentification à l'échelle de la forêt"
Mon problème a été résolu.