將資料庫設定為單一使用者模式

適用于: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

若要將資料庫設定為單一使用者模式:

  1. 物件總管中,連接到 SQL Server Database Engine 的實例,然後展開該實例。

  2. 以滑鼠右鍵按一下要變更的資料庫,然後選取 [ 屬性]。

  3. 在 [ 資料庫屬性 ] 對話方塊中,選取 [ 選項 ] 頁面。

  4. [限制存取] 選項中,選取 [單一]

  5. 如果其他使用者已連接到資料庫,則會出現 [開啟連接] 訊息。 若要變更屬性並關閉所有其他連線,請選取 [ ]。

您也可以使用此程式,將資料庫設定為 [多重 ] 或 [ 限制 存取]。 如需限制存取選項的詳細資訊,請參閱 資料庫屬性 (選項頁面)

使用 Transact-SQL

若要將資料庫設定為單一使用者模式:

  1. 連線至資料庫引擎。

  2. 從 [標準] 列中,選取 [ 新增查詢]。

  3. 複製下列範例並將其貼到查詢視窗中,然後選取 [執行]。 這個範例會將資料庫設成 SINGLE_USER 模式來取得獨佔存取。 之後,範例會將 AdventureWorks2019 資料庫的狀態設成 READ_ONLY ,並將資料庫的存取權還給所有使用者。

警告

為了快速取得獨佔存取權,程式碼範例會使用終止選項 WITH ROLLBACK IMMEDIATE 。 這會導致所有未完成的交易都會回復,而且 AdventureWorks2019 資料庫的任何其他連接都會立即中斷。

USE master;
GO
ALTER DATABASE AdventureWorks2012
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE AdventureWorks2012
SET READ_ONLY;
GO
ALTER DATABASE AdventureWorks2012
SET MULTI_USER;
GO

下一步