Nous avons 2 serveurs dans un groupe AlwaysOn.
Bien que les comptes d'utilisateurs dans chaque base de données synchronisée existent sur les deux serveurs, les connexions au niveau de l'instance de base de données n'existent que sur l'un des serveurs. C'est-à-dire DBINSTANCE-> Sécurité-> Les connexions sont manquantes sur un serveur.
Par conséquent, en cas de basculement, j'obtiens des échecs de connexion sur le deuxième serveur (qui n'a pas les connexions de niveau d'instance correspondantes).
Comment surmonter ce problème? Étais-je censé configurer le compte utilisateur d'une manière spéciale?
Réponses:
Je crois comprendre que si vous n'utilisez pas de bases de données contenues , vous devrez vous assurer que les connexions sont créées manuellement sur d'autres instances.
Quelque chose comme ce script de SQLSoldier , initialement publié en tant que transfert de connexions à un miroir de base de données , devrait faire l'affaire.
la source
Msg 7202, Level 11, State 2, Line 1 Could not find server 'otherserver' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers.
Vous devez soit utiliser une base de données contenue, soit recréer les utilisateurs sur les autres serveurs avec le même hachage de mot de passe et le même SID.
Un script pour ce faire est fourni par Microsoft: Comment transférer des connexions et des mots de passe entre des instances de SQL Server
La solution de Mark était partiellement correcte, mais sa solution recommandée était pour les bases de données en miroir, par opposition à AlwaysOn, ce que demandent les questions.
la source
Je réponds au message après une longue période, mais cela peut aider quelqu'un d'autre avec le même problème. PowerShell peut être utilisé pour copier les connexions du réplica principal vers les réplicas secondaires. Les détails peuvent être trouvés ici https://maq.guru/synchronizing-sql-server-logins-in-an-always-on-available-group/ .
Divulgation complète: je suis propriétaire du site ci-dessus.
Le script PowerShell:
la source
Vous devez utiliser les connexions au domaine Windows et les créer dans chaque instance, car le SID est géré par Active Directory, vous pourrez accéder à tous les réplicas membres du groupe de disponibilité si la connexion existe dans le réplica principal. une autre option, vous devez utiliser un certificat.
la source