為使用 Always On 可用性群組中資料庫的作業管理登入
適用於:SQL Server
您應該在每個 Always On 可用性群組 (AG) 的主要資料庫及其對應的次要資料庫上,例行維護一組相同的使用者登入和 SQL Server Agent 工作。 登入和工作必須在託管 AG 之可用性複本的每個 SQL Server 執行個體重新產生。
SQL Server Agent 作業
您必須從裝載原始主要複本的伺服器執行個體,將相關作業手動複製到裝載原始次要複本的伺服器執行個體。 對於所有資料庫,您需要在每個相關作業的開頭加入邏輯,讓工作只在主要資料庫上執行,也就是說,只有在本機複本是資料庫的主要複本時才執行。
舉例而言,託管 AG 之可用性複本的伺服器執行個體,可能以不同的磁帶機代號,以不同的方式設定。 每個可用性複本的作業都必須允許這類差異。
備份工作可以使用 sys.fn_hadr_backup_is_preferred_replica 函式,根據 AG 備份喜好設定,識別本機複本是否為備份慣用的複本。 使用使用維護計畫精靈建立的備份工作,原生使用此函式。 至於其他備份作業,我們建議您使用此函數做為備份作業中的條件,如此備份作業就只會在慣用複本上執行。 如需詳細資訊,請參閱將支援的備份卸載至可用性群組次要複本。
登入
如果您要使用自主資料庫,可以在資料庫設定包含的使用者,而且不需要為這些使用者,在託管次要複本的伺服器執行個體建立登入。 若為非自主可用性資料庫,您就必須在託管可用性複本的伺服器執行個體上建立登入的使用者。 如需詳細資訊,請參閱 CREATE USER。
如果有任何應用程式使用 SQL Server 驗證或本機 Windows 登入,請參閱本文稍後的使用 SQL Server 驗證或本機 Windows 登入的應用程式登入。
注意
在伺服器執行個體上未定義或定義不正確之 SQL Server 登入的資料庫使用者,無法登入此執行個體。 這類使用者就是伺服器執行個體上的資料庫 「被遺棄使用者」 (Orphaned User)。 如果某位使用者在給定的伺服器執行個體上被遺棄,您可以隨時設定使用者登入。 如需詳細資訊,請參閱孤立使用者疑難排解 (SQL Server)。
其他中繼資料
在託管指定 AG 之次要複本的每個伺服器執行個體,登入和工作並非唯一必須重新建立的資訊。 例如,您可能必須重新建立伺服器組態設定、認證、加密資料、權限、複寫設定、Service Broker 應用程式、觸發程序 (伺服器層級) 等等。 如需詳細資訊,請參閱管理在另一部伺服器上提供資料庫時所需的中繼資料。
SQL Server 驗證或本機 Windows 登入
如果應用程式使用 SQL Server 驗證或本機 Windows 登入,安全性識別碼 (SID) 不符,可能造成 SQL Server 遠端執行個體無法解析該應用程式的登入。 SID 不相符將導致此登入成為遠端伺服器執行個體上的被遺棄使用者。 若應用程式是在容錯移轉後連接到鏡像資料庫或記錄傳送資料庫,或者連接到從備份初始化的複寫訂閱者資料庫,可能就會發生這個問題。
將應用程式設定為使用 SQL Server 遠端執行個體託管的資料庫時,應採取預防措施。 預防的方法包括從本機 SQL Server 執行個體傳送登入和密碼到遠端 SQL Server 執行個體。 如需如何預防此問題的詳細資訊,請參閱知識庫文章 918992-如何在 SQL Server 的執行個體之間傳送登入和密碼)。
注意
此問題會影響位於不同電腦上的 Windows 本機帳戶。 但是,網域帳戶不會發生此問題,因為每部電腦上的 SID 都一樣。
如需詳細資訊,請參閱 Database Engine 部落格文章: Orphaned Users with Database Mirroring and Log Shipping (孤立的使用者與資料庫鏡像及記錄傳送)。