如何在 Amazon RDS for SQL Server 僅供讀取複本上建立和同步 SQL 和 Windows 登入?

1 分的閱讀內容
0

Amazon Relational Database Service (Amazon RDS) for Microsoft SQL Server 僅供讀取複本會以非同步方式複寫在主執行個體上所做的變更。其中一個限制是在執行個體建立後登入不會同步。如何在建立執行個體後建立和同步登入?

解決方案

請使用下列步驟在主執行個體上建立、確認和同步 SQL Server 和 Windows 登入:

SQL 登入

SQL Server 登入由資料庫引擎執行個體驗證,而登入密碼儲存在主資料庫中。SQL 登入可映射至一個資料庫中的資料庫使用者,或映射至不同資料庫中的不同使用者。登入和使用者會產生唯一的陳述式 ID (SID)。這表示在僅供讀取複本上同步登入時,您必須確保登入 SID 與主執行個體上的 SID 相符。

在主執行個體上建立 SQL 登入,並與僅供讀取複本同步

1.    在主執行個體上建立名為 "testlogin" 的 SQL Server 登入。

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

2.    確認已在主執行個體上建立登入 "testlogin"。

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

3.    在主執行個體上,尋找映射至登入 "testlogin" 的 SID。

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

4.    在僅供讀取複本上,從主執行個體建立映射至 SID 的新登入 "testlogin"。

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

5.    確認使用相符的 SID 建立新登入。

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

Windows 登入

Windows 驗證的 SQL Server 登入是執行個體層級登入,作業系統在其中處理身分驗證。Windows 登入可映射至使用者帳戶、本機安全群組或網域帳戶。

在主執行個體和僅供讀取複本上建立 Windows 登入

若要在主執行個體和僅供讀取複本上建立 Windows 登入,請執行下列動作:

1.    在主執行個體上,建立 Windows 登入 '[SQLAD\user1]'。

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

2.    在僅供讀取複本上,使用相同的命令建立登入 '[SQLAD\user1]'。與 SQL 登入不同,Windows 驗證的 SQL 登入不需要映射 SID。

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

在 Amazon RDS 上,無法使用 Microsoft 提供的儲存區程序 "sp_help_revlogin" 和 "sp_hexadecimal" 來產生登入。這是因為 Amazon RDS 不會在主資料庫上提供提升的權限。


AWS 官方
AWS 官方已更新 2 年前