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.