將資料庫設定為單一使用者模式
適用於:SQL Server
本文描述了如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 將使用者定義的資料庫設定為單一使用者模式。 單一使用者模式指定一次只能有一位使用者存取資料庫,而且一般用於維護動作。
限制
如果其他使用者在您將資料庫設定為單一使用者模式時連線至資料庫,則其與資料庫的連線將會關閉,而不會發出警告。
即使設定選項的使用者已中斷連線,資料庫仍會維持單一使用者模式。 此時,不同的使用者,但只有一位使用者可連線至資料庫。
必要條件
- 將資料庫設為 SINGLE_USER 之前,請先確定 AUTO_UPDATE_STATISTICS_ASYNC 選項是否設為
OFF
。 當此選項設定為ON
時,用來更新統計資料的背景執行緒會取得資料庫連線,而您將無法以單一使用者模式存取資料庫。 如需詳細資訊,請參閱 ALTER DATABASE SET 選項 (Transact-SQL)。
權限
需要資料庫的 ALTER 權限。
使用 SQL Server Management Studio
將資料庫設定為單一使用者模式
在物件總管中,連接到 SQL Server Database Engine 的執行個體,然後展開該執行個體。
以滑鼠右鍵按一下要變更的資料庫,然後選取 [屬性]。
在 [資料庫屬性] 對話方塊中,選取 [選項] 頁面。
從 [限制存取] 選項中,選取 [單一]。
如果其他使用者連線至資料庫,[開啟連線] 訊息即會出現。 若要變更屬性並關閉所有其他連線,請選取 [是]。
您還可以使用此程序,將資料庫設定為多重或限制存取。 如需有關限制存取選項的詳細資訊,請參閱資料庫屬性 (選項頁面)。
使用 Transact-SQL
將資料庫設定為單一使用者模式
連線至資料庫引擎。
在標準列上,選取 [新增查詢]。
複製下列範例並將其貼到查詢視窗中,然後選取 [執行]。 此範例會將資料庫設成
SINGLE_USER
模式來取得獨佔存取。 之後,範例會將AdventureWorks2022
資料庫的狀態設成READ_ONLY
,並將資料庫的存取權還給所有使用者。
警告
為了快速取得專屬存取權,程式碼範例會使用終止選項 WITH ROLLBACK IMMEDIATE
。 這會導致所有未完成的交易都會回復,而且 AdventureWorks2022
資料庫的任何其他連接都會立即中斷。
USE master;
GO
ALTER DATABASE AdventureWorks2022
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE AdventureWorks2022
SET READ_ONLY;
GO
ALTER DATABASE AdventureWorks2022
SET MULTI_USER;
GO