Ir para o conteúdo

Como faço para criar e sincronizar logins do SQL e do Windows em uma réplica de leitura do Amazon RDS para SQL Server?

3 minuto de leitura
0

As réplicas de leitura do Amazon Relational Database Service (Amazon RDS) para Microsoft SQL Server replicam de forma assíncrona as alterações na instância primária. Meus logins não são sincronizados quando eu crio uma instância. Quero criar e sincronizar os logins ao criar uma instância.

Resolução

Crie um login SQL na instância primária e sincronize o login com uma réplica de leitura

As instâncias do mecanismo de banco de dados autenticam os logins do SQL Server e armazenam as senhas de login no banco de dados primário. É possível mapear logins do SQL para um usuário em um banco de dados ou para usuários diferentes em bancos de dados distintos. Logins e usuários geram um ID de declaração (SID) exclusivo. Ao sincronizar logins na réplica de leitura, certifique-se de que o SID de login corresponda ao SID na instância primária.

Para criar um login SQL na instância primária e sincronizar o login com uma réplica de leitura, conclua as etapas a seguir:

  1. Execute a consulta a seguir na instância primária para criar um login do SQL Server chamado testlogin:

    USE [master]  
    GO  
    CREATE LOGIN [testlogin] WITH PASSWORD=N'Pa$$word';
  2. Execute a seguinte consulta na instância primária para confirmar que você criou o testlogin na instância primária:

    SELECT name FROM sys.sql_logins WHERE name = 'testlogin';
  3. Execute a seguinte consulta na instância primária para encontrar o SID mapeado para testlogin:

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

    Exemplo de saída:

    name                           sid  
    -------------------------------------------------------------------------------  
    testlogin                      0xEBF23823BDEAED42823C76C8706F4B6B
  4. Execute a seguinte consulta na réplica de leitura para criar um novo login chamado testlogin que mapeia para o SID a partir da instância primária:

    CREATE Login testlogin  WITH password = N'Pa$$word', SID = 0xEBF23823BDEAED42823C76C8706F4B6B;
  5. Execute a seguinte consulta na réplica de leitura para confirmar que você criou o novo login com o mesmo SID da instância primária:

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

Crie um login do Windows em uma instância primária e réplica de leitura

Os logins autenticados do SQL Server do Windows são logins em nível de instância em que o sistema operacional (SO) gerencia a autenticação. É possível mapear logins do Windows para a conta da AWS de um usuário, um grupo de segurança local ou uma conta de domínio.

Para criar um login do Windows na instância primária e réplica de leitura, conclua as seguintes etapas:

  1. Execute a consulta a seguir na instância primária para criar um login do Windows chamado SQLAD\user1:

    CREATE LOGIN [SQLAD\user1] FROM WINDOWS  
    WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]  
    GO
  2. Execute o comando a seguir na réplica de leitura para criar um login chamado SQLAD\user1:

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

Observação: o Amazon RDS não fornece permissões de alto nível em um banco de dados primário. Portanto, não é possível usar os procedimentos de armazenamento sp_help_revlogin ou sp_hexadecimal que a Microsoft fornece para gerar logins no Amazon RDS.