我想從一個 Amazon Relational Database (Amazon RDS) for Microsoft SQL Server 執行個體遷移 SQL Server 登入資訊和密碼到另一個 Amazon RDS for SQL Server 執行個體。或者,我想要將登入資訊遷移至內部部署環境。要怎麼做?
解決方案
**備註:**如需複製主要使用者登入資訊的指示,請參閱如何複製或克隆 RDS for SQL Server 使用者登入資訊許可?
將 SQL Server 登入資訊從一個 RDS for SQL Server 執行個體遷移到另一個執行個體:
若要將登入資訊和密碼遷移至新的目標 RDS 執行個體,請執行下列動作:
- 建立來源執行個體的快照。
- 在目標執行個體上使用不同的名稱還原快照。
- 刪除不需要的登入資訊和資料庫。
若要將登入資訊遷移至現有目標 RDS 執行個體,請完成如下區段中的步驟。
將登入名從 RDS for SQL Server 遷移至內部部署環境
**備註:**您必須在如下解決方案中手動輸入密碼。您無法直接從 RDS 擷取用於登入資訊的加密密碼。
方式 1
1. 在任何使用者資料庫上建立 sp_help_revlogins 預存程序。如需預存程序指令碼,請參閱在 SQL Server 執行個體之間傳輸登入資訊和密碼中的方式 2。
2. 執行預存程序,在來源執行個體上編寫登入資訊指令碼。
**備註:**在主資料庫中建立預存程序會導致下列錯誤:
Msg 262, Level 14, State 18, Procedure sp_hexadecimal, Line 1 [Batch Start Line 5]
CREATE PROCEDURE permission denied in database 'master'
方式 2
若要手動建立登入資訊或使用 Microsoft SQL Server Management Studio (SSMS) 編寫登入資訊指令碼,請執行下列動作:
1. 開啟 SSMS 中的安全性預留位置,然後展開它。
2. 選擇登入資訊並按 F7 鍵。或者,從 View (檢視) 功能表中選取 Object explorer details (物件總管詳細資料)。
3. 按住 Ctrl 鍵,選取您要遷移的登入資訊。
4. 選擇所需的登入資訊後,以滑鼠右鍵按一下屏幕,然後選擇Script Login as (編寫登入資訊指令碼為) 以開啟新的查詢窗口。
5. 複製建立登入資訊指令碼,並透過取代密碼在目的地執行個體上執行它。如需預存程序指令碼,請參閱在 SQL Server 執行個體之間傳輸登入資訊和密碼中的方式 1。
將登入資訊和密碼從內部部署環境遷移至 RDS for SQL Server
在來源伺服器 (內部部署) 上,執行下列動作:
1. 針對來自內部部署伺服器的所有登入資訊產生建立登入資訊指令碼。如需預存程序指令碼,請參閱在 SQL Server 執行個體之間傳輸登入資訊和密碼中的方式 2。
2. 建立預存程序之後,開啟新的 TSQL 視窗,並使用下列命令執行預存程序。
**備註:**在執行指令碼之前,請按下鍵盤上的 CTRL+T,確定結果為文字格式。
EXEC [sp_help_revlogin]
此查詢輸出會提供指令碼,以建立目的地伺服器上具有原始 SID 和密碼的登入資訊。
在目的地伺服器上,執行下列動作:
1. 使用主使用者帳戶連線 RDS for SQL Server 執行個體。
2. 從內部部署伺服器執行在來源伺服器上 (內部部署) 區段中的步驟 2 (sp_help_revlogin 的輸出) 所產生的指令碼。
**備註:**您無法授權系統管理員存取 RDS 中的登入資訊。因此,當您將具有系統管理員權限的登入資訊遷移至 RDS 時,不會授予存取權。您必須明確授予這些登入資訊所需的許可。
如需 RDS 使用者的可用許可清單,請參閱主使用者帳戶權限。
主帳戶許可疑難排解
我可以在哪裡找到主使用者名稱?
1. 登入 RDS 主控台。
2. 在導覽窗格中,選擇 Databases (資料庫)。
3. 選擇您要為其提供主使用者名稱的 RDS 資料庫執行個體。
4. 開啟 Configuration (組態) 索引標籤。主使用者名稱會列在 Availability (可用性) 區段中。
如何重設主使用者密碼或恢復主使用者的許可?
如需重設主使用者密碼的資訊,請參閱如何重設我的 Amazon RDS 資料庫執行個體的主使用者密碼?