首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

解決 SQL Server 2005 還原後資料庫顯示「受限制使用者」問題

     編輯:關於SqlServer

在 SQL Server 2005 中,將備份檔還原至新環境或不同執行個體後,資料庫常會進入「受限制使用者」狀態,導致一般使用者無法連線,僅允許 db_owner、dbcreator 或 sysadmin 角色存取。本文說明成因與快速解除方法。

成因分析

  • 備份來源資料庫可能處於單一使用者、受限制或離線狀態。
  • 還原過程會保留來源資料庫的資料庫選項狀態,包含 RESTRICTED_USER 設定。
  • 目標執行個體若無對應登入,使用者可能成為「孤立使用者」,進一步影響存取。

快速解除:透過 SSMS 圖形介面

  1. 在物件總管中右鍵點選該資料庫 → 屬性。
  2. 選取左側 選項 頁面。
  3. 在 狀態 區段找到 限制存取 下拉選單。
  4. 將 RESTRICTED_USER(受限制使用者) 改為 MULTI_USER(多重使用者)。
  5. 點選 確定 套用變更。

資料庫屬性-選項-限制存取設定畫面

T-SQL 指令快速切換

-- 立即切換為多重使用者模式
ALTER DATABASE [YourDB] SET MULTI_USER WITH ROLLBACK IMMEDIATE;
GO

WITH ROLLBACK IMMEDIATE 會強制中斷現有連線並回滾未完成交易,確保模式立即生效。

後續檢查:修復孤立使用者

還原後常伴隨登入與使用者 SID 不符問題,執行下列指令檢查並修復:

-- 檢查孤立使用者
EXEC sp_change_users_login 'Report';
GO

-- 修復:將資料庫使用者對應至伺服器登入(若登入已存在)
EXEC sp_change_users_login 'Auto_Fix', 'UserName', NULL, 'Password';
GO

-- 或建立新登入並對應
EXEC sp_change_users_login 'Auto_Fix', 'UserName';
GO

預防建議

  • 備份前確認來源資料庫為 MULTI_USER 模式。
  • 使用含 WITH REPLACE, STATS=10 的還原指令,並在還原腳本末端加入 ALTER DATABASE ... SET MULTI_USER。
  • 建立標準化還原檢查清單,包含:模式檢查、孤立使用者修復、權限驗證、應用程式連線測試。

透過上述步驟,可在數秒內解除「受限制使用者」限制,恢復正常業務存取。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved