Saltar al contenido

¿Cómo creo y sincronizo los inicios de sesión de SQL y Windows en una réplica de lectura de Amazon RDS para SQL Server?

3 minutos de lectura
0

Las réplicas de lectura de Amazon Relational Database Service (Amazon RDS) para Microsoft SQL Server replican de forma asincrónica los cambios en la instancia principal. Mis inicios de sesión no se sincronizan cuando creo una instancia. Quiero crear y sincronizar los inicios de sesión al crear una instancia.

Resolución

Creación de un inicio de sesión de SQL en la instancia principal y sincronización del inicio de sesión con una réplica de lectura

Las instancias del motor de base de datos autentican los inicios de sesión de SQL Server y almacenan las contraseñas de inicio de sesión en la base de datos principal. Puede asignar los inicios de sesión de SQL a un usuario de base de datos en una base de datos o a diferentes usuarios en diferentes bases de datos. Los inicios de sesión y los usuarios generan un ID de declaración (SID) único. Al sincronizar los inicios de sesión en la réplica de lectura, asegúrese de que el SID de inicio de sesión coincide con el SID de la instancia principal.

Para crear un inicio de sesión de SQL en la instancia principal y sincronizarlo con una réplica de lectura, siga estos pasos:

  1. Ejecute la siguiente consulta en la instancia principal para crear un inicio de sesión de SQL Server denominado testlogin:

    USE [master]  
    GO  
    CREATE LOGIN [testlogin] WITH PASSWORD=N'Pa$$word';
  2. Ejecute la siguiente consulta en la instancia principal para confirmar que ha creado testlogin en la instancia principal:

    SELECT name FROM sys.sql_logins WHERE name = 'testlogin';
  3. Ejecute la siguiente consulta en la instancia principal para encontrar el SID que se asigna a testlogin:

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

    Resultado de ejemplo:

    name                           sid  
    -------------------------------------------------------------------------------  
    testlogin                      0xEBF23823BDEAED42823C76C8706F4B6B
  4. Ejecute la siguiente consulta en la réplica de lectura para crear un nuevo inicio de sesión denominado testlogin que se asigne al SID desde la instancia principal:

    CREATE Login testlogin  WITH password = N'Pa$$word', SID = 0xEBF23823BDEAED42823C76C8706F4B6B;
  5. Ejecute la siguiente consulta en la réplica de lectura para confirmar que ha creado el nuevo inicio de sesión con el mismo SID que la instancia principal:

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

Creación de un inicio de sesión de Windows en una instancia principal y lectura de la réplica

Los inicios de sesión de SQL Server autenticados por Windows son inicios de sesión a nivel de instancia en los que el sistema operativo (SO) administra la autenticación. Puede asignar los inicios de sesión de Windows a la cuenta de AWS de un usuario, a un grupo de seguridad local o a una cuenta de dominio.

Para crear un inicio de sesión de Windows en la instancia principal y leer la réplica, siga estos pasos:

  1. Ejecute la siguiente consulta en la instancia principal para crear un inicio de sesión de Windows denominado SQLAD\user1:

    CREATE LOGIN [SQLAD\user1] FROM WINDOWS  
    WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]  
    GO
  2. Ejecute el siguiente comando en la réplica de lectura para crear un inicio de sesión denominado SQLAD\user1:

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

Nota: Amazon RDS no proporciona permisos de alto nivel en una base de datos principal. Por lo tanto, no puede usar los procedimientos de almacenamiento sp_help_revlogin o sp_hexadecimal que Microsoft proporciona para generar inicios de sesión en Amazon RDS.