將資料庫使用者和物件與SQL伺服器僅供讀取複本同步 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將資料庫使用者和物件與SQL伺服器僅供讀取複本同步

建立僅供讀取複本時,主資料庫執行個體中存在的任何登入、自訂伺服器角色、SQL代理程式作業或其他伺服器層級物件都應該會出現在新建立的僅供讀取複本中。不過,建立僅供讀取複本後,在主要資料庫執行個體中建立的任何伺服器層級物件都不會自動複寫,而且您必須在僅供讀取複本中手動建立這些物件。

資料庫使用者會自動從主要資料庫執行個體複寫到僅供讀取複本。由於僅供讀取複本資料庫處於唯讀模式,因此無法在資料庫中更新資料庫使用者的安全性識別碼 (SID)。因此,在僅供讀取複本中建立SQL登入時,務必確保該登入SID的符合主要資料庫執行個體中對應的SQL登入。SID如果您不同步處理SQL登入,他們將無法存取僅供讀取複本中的資料庫。SIDsWindows 活動目錄(AD)身份驗證的登錄不會遇到此問題,因為SQL服務器SID從活動目錄獲取。

將主要資料庫執行個體的SQL登入同步至僅供讀取複本
  1. 連線至主要資料庫執行個體。

  2. 在主資料庫執行個體中建立新的SQL登入資料。

    USE [master] GO CREATE LOGIN TestLogin1 WITH PASSWORD = 'REPLACE WITH PASSWORD';
    注意

    指定此處所顯示提示以外的密碼,作為安全最佳實務。

  3. 為資料庫中的SQL登入建立新的資料庫使用者。

    USE [REPLACE WITH YOUR DB NAME] GO CREATE USER TestLogin1 FOR LOGIN TestLogin1; GO
  4. 檢查主資料庫執行個體中新建立SID的SQL登入資料。

    SELECT name, sid FROM sys.server_principals WHERE name = TestLogin1;
  5. 連線至僅供讀取複本。建立新的SQL登入資訊。

    CREATE LOGIN TestLogin1 WITH PASSWORD = 'REPLACE WITH PASSWORD', SID=[REPLACE WITH sid FROM STEP #4];
或者,如果您有僅供讀取複本資料庫的存取權,則可以依照下列方式修正孤立的使用者:
  1. 連線至僅供讀取複本。

  2. 識別資料庫中孤立的使用者。

    USE [REPLACE WITH YOUR DB NAME] GO EXEC sp_change_users_login 'Report'; GO
  3. 為孤立的資料庫使用者建立新的SQL登入。

    CREATE LOGIN TestLogin1 WITH PASSWORD = 'REPLACE WITH PASSWORD', SID=[REPLACE WITH sid FROM STEP #2];

    範例:

    CREATE LOGIN TestLogin1 WITH PASSWORD = 'TestPa$$word#1', SID=[0x1A2B3C4D5E6F7G8H9I0J1K2L3M4N5O6P];
    注意

    指定此處所顯示提示以外的密碼,作為安全最佳實務。