當您將使用者資料庫由一台SQL Server 伺服器,移至另一台SQL Server 伺服器時,將會發生 master 資料庫中的
登入帳號,與使用者資料庫中的使用者之安全識別碼 (SID) 之間會不相符的問題。將會產生『孤兒使用者』的問
題。
造成影響:
使用者無法登入該伺服器,就算建立一模一樣的帳號名稱,也是沒辦法
-- Step01. 變更目前資料庫的擁有者為 sa。
/* 先切換的指定的資料庫
功能:解決 dbo 為 孤兒使用者的問題。*/
USE [資料庫名稱]
GO
EXEC sp_changedbowner 'sa'
-- Step02.顯示目前資料庫中,SID有遺失的帳號資訊。
USE [資料庫名稱]
GO
EXEC sp_change_users_login 'Report'
-- Step03.自動將使用者對應到登入,並且視需要自動建立新的登入使用者。
/*請注意:
在 Step02 中,若是出現一個以上得的帳號資訊,則本步驟 Step3 必須一個一個帳號來處理執行喔。
引數說明:
@UserNamePattern -- 使用 Step02 取得帳號名稱
@Password -- 輸入 原先 密碼
@Action -- 使用 'Auto_Fix',但必須確認新的伺服器中沒有相同名稱的登入帳號
其餘引數不改變
請參考以下的範例:
此範例會顯示如何使用 『Auto_Fix』 選項,將現有的使用者對應到擁有相同名稱的使用者,
或是在登入 Mary 不存在時,自動建立 SQL Server 登入 Mary (包含密碼 B3r12-36)。*/
EXEC sp_change_users_login
@Action='Auto_Fix',
@UserNamePattern='QQZZ_apuser',
@LoginName=NULL,
@Password='123'
-- Step04.再做一次檢查,是否有孤兒帳號
EXEC sp_change_users_login 'Report'
沒有留言:
張貼留言