本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2014 中将用户定义的数据库设置为单用户模式。 单用户模式指定一次只有一个用户可访问数据库,该模式通常用于维护操作。
本主题内容
准备工作:
若要将数据库设置为单用户模式,请使用:
在您开始之前
局限性与限制
如果其他用户在您将数据库设置为单用户模式时连接到了数据库,则他们与数据库的连接将被关闭,且不发出警告。
即使设置选项的用户注销,数据库仍处于单用户模式。 这时,其他用户(但只能是一个)可以连接到数据库。
先决条件
- 将数据库设置为SINGLE_USER之前,请验证AUTO_UPDATE_STATISTICS_ASYNC选项是否设置为 OFF。 如果此选项设置为 ON,则用于更新统计信息的后台线程会与数据库建立连接,并且无法在单用户模式下访问数据库。 有关详细信息,请参阅 ALTER DATABASE SET 选项 (Transact-SQL)。
安全
权限
需要对数据库拥有 ALTER 权限。
使用 SQL Server Management Studio
将数据库设置为单用户模式
在 对象资源管理器中,连接到 SQL Server 数据库引擎的实例,然后展开该实例。
右键单击要更改的数据库,然后单击“ 属性”。
在“ 数据库属性 ”对话框中,单击“ 选项” 页。
在 “限制访问” 选项中,选择 “单用户”。
如果其他用户连接到数据库,将出现 “打开的连接” 消息。 若要更改属性并关闭所有其他连接,请单击“ 是”。
还可以使用此过程将数据库设置为“多访问”或“受限访问”。 有关此“限制访问”选项的详细信息,请参阅数据库属性(选项页)。
使用 Transact-SQL
将数据库设置为单用户模式
连接到数据库引擎。
在标准栏中,单击“新建查询”。
将以下示例复制并粘贴到查询窗口中,然后单击 执行。 此示例将数据库设置为
SINGLE_USER模式,以获得独占访问权。 然后,该示例将 AdventureWorks2012 数据库的状态设置为READ_ONLY并返回对数据库的所有用户的访问权限。终止选项WITH ROLLBACK IMMEDIATE在第一ALTER DATABASE个语句中指定。 这将导致所有不完整的事务被回滚,并立即断开与 AdventureWorks2012 数据库的其他所有连接。
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