Comment créer et synchroniser des connexions SQL et Windows sur Amazon RDS pour SQL Server Read Replica ?

Dernière mise à jour : 13/10/2022

Amazon Relational Database Service (Amazon RDS) pour Microsoft SQL Server réplique de manière asynchrone les modifications apportées à l'instance principale. L'une des limites est que les connexions ne se synchronisent pas après la création de l'instance. Comment créer et synchroniser les connexions après la création d'une instance ?

Solution

Procédez comme suit pour créer, confirmer et synchroniser les connexions SQL Server et Windows sur l'instance principale :

Connexions SQL

Les connexions au serveur SQL sont authentifiées par les instances du moteur de base de données et les mots de passe de connexion sont stockés dans la base de données principale. Les connexions SQL peuvent être mappées à un utilisateur de base de données dans une base de données ou à différents utilisateurs dans différentes bases de données. Les connexions et les utilisateurs génèrent un identifiant de déclaration (SID) unique. Cela signifie que lorsque vous synchronisez les connexions sur un réplica en lecture, vous devez vous assurer que le SID de connexion correspond au SID de l'instance principale.

Création d'un identifiant SQL sur l'instance principale et synchronisation avec read replica

1.    Sur l'instance principale, créez un identifiant de connexion SQL Server nommé « testlogin ».

USE [master]
GO
CREATE LOGIN [testlogin] WITH PASSWORD=N'Pa$$word';

2.    Vérifiez que le login « testlogin » est créé sur l'instance principale.

SELECT name FROM sys.sql_logins WHERE name = 'testlogin';

3.    Sur l'instance principale, trouvez le SID mappé au login « testlogin ».

select name, sid  FROM sys.sql_logins WHERE name = 'testlogin'
name                                         sid
-------------------------------------------------------------------------------
testlogin                      0xEBF23823BDEAED42823C76C8706F4B6B

4.    Sur la réplique lue, créez un nouvel identifiant « testlogin » mappé au SID à partir de l'instance principale.

CREATE Login testlogin  WITH password = ' Pa$$word', SID = 0xEBF23823BDEAED42823C76C8706F4B6B

5.    Vérifiez que le nouveau login est créé avec le SID correspondant.

SELECT name, sid  FROM sys.sql_logins WHERE name = 'testlogin'

Logins Windows

Les connexions SQL Server authentifiées par Windows sont des connexions au niveau de l'instance dans lesquelles le système d'exploitation gère l'authentification. Les connexions Windows peuvent être mappées à un compte utilisateur, à un groupe de sécurité local ou à un compte de domaine.

Créez un identifiant Windows sur l'instance principale et lisez la réplique

Pour créer un identifiant Windows sur l'instance principale et lire le réplica, procédez comme suit :

1.    Sur l'instance principale, créez un identifiant Windows « [SQLAD \ user1] ».

CREATE LOGIN [SQLAD\user1] FROM WINDOWS
WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
GO

2.    Lors de la lecture de la réplique, créez le login « [SQLAD \ user1] » à l'aide de la même commande. Contrairement à une connexion SQL, les connexions SQL authentifiées par Windows ne nécessitent pas de mappage de SID.

CREATE LOGIN [SQLAD\user1] FROM WINDOWS
WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
GO

Sur Amazon RDS, il n'est pas possible d'utiliser les procédures de magasin « sp_help_revlogin » et « sp_hexadecimal » fournies par Microsoft pour générer des connexions. Cela est dû au fait qu'Amazon RDS ne fournit pas de privilèges élevés sur une base de données principale.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?