Come posso creare e sincronizzare gli accessi SQL e Windows sulla replica in lettura di Amazon RDS per SQL Server?

3 minuti di lettura
0

La replica in lettura di Amazon Relational Database Service (Amazon RDS) per Microsoft SQL Server in modo asincrono le modifiche apportate sull'istanza master. Una delle limitazioni è che gli accessi non vengono sincronizzati dopo la creazione dell'istanza. Come posso creare e sincronizzare gli accessi dopo la creazione di un'istanza?

Risoluzione

Utilizza i passaggi seguenti per creare, confermare e sincronizzare gli accessi di SQL Server e Windows sull'istanza master:

Accessi SQL

Gli accessi al server SQL vengono autenticati dalle istanze del motore di database e le password di accesso vengono archiviate nel database master. Gli accessi SQL possono essere mappati a un utente del database in un database o a utenti diversi in database diversi. Gli accessi e gli utenti generano un ID istruzione (SID) univoco. Ciò significa che quando si sincronizzano gli accessi sulla replica in lettura è necessario assicurarsi che il SID di accesso corrisponda al SID sull'istanza master.

Creazione dell'accesso SQL sull'istanza master e sincronizzazione con la replica in lettura

1.    Sull'istanza master, creare un account di accesso a SQL Server chiamato "testlogin".

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

2.    Confermare che l’accesso "testlogin" sia stato creato sull'istanza master.

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

3.    Nell'istanza master, trovare il SID mappato al login "testlogin".

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

4.    Sulla replica in lettura, creare un nuovo accesso "testlogin" mappato al SID dall'istanza master.

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

5.    Confermare che il nuovo accesso sia stato creato con il SID corrispondente.

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

Accessi a Windows

Gli accessi al server SQL autenticati da Windows sono accessi a livello di istanza in cui il sistema operativo gestisce l'autenticazione. Gli accessi a Windows possono essere mappati a un account utente, a un gruppo di sicurezza locale o a un account di dominio.

Creazione dell'accesso a Windows sull'istanza master e la replica in lettura

Per creare un accesso Windows sull'istanza master e la replica in lettura, procedere come segue:

1.    Nell'istanza master, creare un accesso Windows '[SQLAD\ user1]'.

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

2.    Nella replica in lettura, creare l'accesso '[SQLAD\ user1]' utilizzando lo stesso comando. A differenza di un accesso SQL, gli accessi SQL autenticati da Windows non richiedono la mappatura di un SID.

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

In Amazon RDS, non è possibile utilizzare le procedure di archiviazione fornite da Microsoft "sp_help_revlogin" e "sp_hexadecimal" per generare accessi. Questo perché Amazon RDS non fornisce privilegi elevati su un database master.