点击蓝色字关注“SQL数据库运维”

本文内容主要介绍如何将用户定义的数据库设置为单用户模式。单用户模式指定一次只有一个用户可访问数据库,该模式通常用于维护操作。(比如修复数据文件操作)
名词解释:
SINGLE_USER --单用户模式READ_ONLY --只读模式MULTI_USER --多用户模式
限制和局限
如果其他用户在您将数据库设置为单用户模式时连接到了数据库,则他们与数据库的连接将被关闭,且不发出警告。
即使设置此选项的用户已注销,数据库仍保持单用户模式。这时,其他用户(但只能是一个)可以连接到数据库。
先决条件
在将数据库设置为 SINGLE_USER 之前,应验证 AUTO_UPDATE_STATISTICS_ASYNC 选项是否设置为 OFF。在此选项设置为 ON 时,用于更新统计信息的后台线程将与数据库建立连接,您将无法以单用户模式访问数据库。
权限(安全性)
需要对数据库拥有 ALTER 权限。
使用 SQL Server Management Studio
将数据库设置为单用户模式
在对象资源管理器中,连接到 SQL Server 数据库引擎的实例,然后展开该实例。
右键单击要更改的数据库,再单击“属性”。
在“数据库属性”对话框中,单击“选项”页。
在“限制访问”选项中,选择“单用户”。
如果其他用户连接到数据库,将出现“打开的连接”消息。若要更改属性并关闭所有其他连接,请单击“是”。还可以使用此过程将数据库设置为“多用户”访问或“限制”访问。

使用 Transact-SQL
设置数据库用户模式
1、设置单用户模式(数据库设置为 SINGLE_USER 模式,以获得独占访问权)
USE master;GOALTER DATABASE AdventureWorks2021SET SINGLE_USERWITH ROLLBACK IMMEDIATE;GO
2、设置为只读模式(将 AdventureWorks2021 数据库的状态设置为 READ_ONLY ,并将对数据库的访问权返回给所有用户)
USE master;GOALTER DATABASE AdventureWorks2021SET READ_ONLY;GO
3、设置为多用户模式(所有操作完成后再改回多用户模式)
USE master;GOALTER DATABASE AdventureWorks2021SET MULTI_USER;GO
注意:
设置单用户模式时,一般情况下会加上 WITH ROLLBACK IMMEDIATE 这个选项,用于立即回滚进行中的事务。

点击关注“SQL数据库运维”,后台回复关键字:进群,带你进入高手如云的技术交流群。后台回复关键字:SQL,获取学习资料。




