Sincronizzazione degli utenti e degli oggetti del database con una replica di lettura SQL Server - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Sincronizzazione degli utenti e degli oggetti del database con una replica di lettura SQL Server

Tutti gli accessi, i ruoli server personalizzati, i processi di SQL Agent o altri oggetti a livello di server presenti nell'istanza database primaria al momento della creazione di una replica di lettura dovrebbero essere presenti nella replica di lettura appena creata. Tuttavia, tutti gli oggetti a livello di server creati nell'istanza database primaria dopo la creazione della replica di lettura non verranno replicati automaticamente ed è necessario crearli manualmente nella replica di lettura.

Gli utenti del database vengono replicati automaticamente dall'istanza database primaria nella replica di lettura. Poiché il database delle repliche di lettura è in modalità di sola lettura, l'identificatore di sicurezza (SID) dell'utente del database non può essere aggiornato nel database. Pertanto, quando si creano accessi SQL nella replica di lettura, è essenziale assicurarsi che il SID di tale accesso corrisponda al SID dell'accesso SQL corrispondente nell'istanza database primaria. Se non vengono sincronizzati, i SID degli accessi SQL non saranno in grado di accedere al database nella replica di lettura. Gli accessi autenticati di Windows Active Directory (AD) non presentano questo problema perché SQL Server ottiene il SID da Active Directory.

Sincronizzazione di un accesso SQL tra istanza database primaria e replica di lettura
  1. Eseguire la connessione all'istanza database primaria.

  2. Creare un nuovo accesso SQL nell'istanza database primaria.

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

    Specifica una password diversa dal prompt mostrato qui come best practice per la sicurezza.

  3. Creare un nuovo utente del database per l'accesso SQL nel database.

    USE [REPLACE WITH YOUR DB NAME] GO CREATE USER TestLogin1 FOR LOGIN TestLogin1; GO
  4. Controllare il SID dell'accesso SQL appena creato nell'istanza database primaria.

    SELECT name, sid FROM sys.server_principals WHERE name = TestLogin1;
  5. Connettersi alla replica di lettura. Creare il nuovo accesso SQL.

    CREATE LOGIN TestLogin1 WITH PASSWORD = 'REPLACE WITH PASSWORD', SID=[REPLACE WITH sid FROM STEP #4];
In alternativa, se si dispone dell'accesso al database delle repliche di lettura, è possibile correggere l'utente orfano come segue:
  1. Connettersi alla replica di lettura.

  2. Individuare gli utenti orfani nel database.

    USE [REPLACE WITH YOUR DB NAME] GO EXEC sp_change_users_login 'Report'; GO
  3. Creare un nuovo accesso SQL per l'utente orfano del database.

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

    Esempio:

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

    Specifica una password diversa dal prompt mostrato qui come best practice per la sicurezza.