Synchronisation des utilisateurs et des objets de base de données avec une réplique en lecture SQL sur serveur - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Synchronisation des utilisateurs et des objets de base de données avec une réplique en lecture SQL sur serveur

Tous les identifiants, rôles de serveur personnalisés, tâches d'SQLagent ou autres objets de niveau serveur existant dans l'instance de base de données principale au moment de la création d'une réplique de lecture devraient être présents dans la réplique de lecture nouvellement créée. Toutefois, les objets de niveau serveur qui sont créés dans l'instance de base de données principale après la création du réplica en lecture ne sont pas répliqués automatiquement. Vous devez les créer manuellement dans le réplica en lecture.

Les utilisateurs de base de données sont automatiquement répliqués à partir de l'instance de base de données principale dans le réplica en lecture. Comme la base de données répliquée en lecture seule est en mode lecture seule, l'identifiant de sécurité (SID) de l'utilisateur de la base de données ne peut pas être mis à jour dans la base de données. Par conséquent, lors de la création de SQL connexions dans la réplique de lecture, il est essentiel SID de s'assurer que la connexion correspond à celle SID de la SQL connexion correspondante dans l'instance de base de données principale. Si vous ne synchronisez pas SIDs les SQL connexions, elles ne pourront pas accéder à la base de données dans la réplique en lecture. Les connexions authentifiées Windows Active Directory (AD) ne rencontrent pas ce problème car le SQL serveur les obtient SID auprès d'Active Directory.

Pour synchroniser une SQL connexion entre l'instance de base de données principale et la réplique en lecture
  1. Connectez-vous à l'instance de base de données principale.

  2. Créez une nouvelle SQL connexion dans l'instance de base de données principale.

    USE [master] GO CREATE LOGIN TestLogin1 WITH PASSWORD = 'REPLACE WITH PASSWORD';
    Note

    Spécifiez un mot de passe autre que celui indiqué ici, en tant que bonne pratique de sécurité.

  3. Créez un nouvel utilisateur de base de données pour SQL vous connecter à la base de données.

    USE [REPLACE WITH YOUR DB NAME] GO CREATE USER TestLogin1 FOR LOGIN TestLogin1; GO
  4. Vérifiez le nom SID de SQL connexion nouvellement créé dans l'instance de base de données principale.

    SELECT name, sid FROM sys.server_principals WHERE name = TestLogin1;
  5. Connectez-vous au réplica en lecture. Créez le nouveau SQL login.

    CREATE LOGIN TestLogin1 WITH PASSWORD = 'REPLACE WITH PASSWORD', SID=[REPLACE WITH sid FROM STEP #4];
Comme alternative, si vous avez accès à la base de données de réplica en lecture, vous pouvez corriger l'utilisateur orphelin comme suit :
  1. Connectez-vous au réplica en lecture.

  2. Identifiez les utilisateurs orphelins dans la base de données.

    USE [REPLACE WITH YOUR DB NAME] GO EXEC sp_change_users_login 'Report'; GO
  3. Créez un nouvel SQL identifiant pour l'utilisateur de base de données orphelin.

    CREATE LOGIN TestLogin1 WITH PASSWORD = 'REPLACE WITH PASSWORD', SID=[REPLACE WITH sid FROM STEP #2];

    Exemple :

    CREATE LOGIN TestLogin1 WITH PASSWORD = 'TestPa$$word#1', SID=[0x1A2B3C4D5E6F7G8H9I0J1K2L3M4N5O6P];
    Note

    Spécifiez un mot de passe autre que celui indiqué ici, en tant que bonne pratique de sécurité.