暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

详解SQL Server 数据库单用户模式设置

SQL数据库运维 2021-10-21
4037

点击蓝色字关注“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;
      GO
      ALTER DATABASE AdventureWorks2021
      SET SINGLE_USER
      WITH ROLLBACK IMMEDIATE;
      GO

      2、设置为只读模式(将 AdventureWorks2021 数据库的状态设置为 READ_ONLY ,并将对数据库的访问权返回给所有用户)

        USE master;
        GO
        ALTER DATABASE AdventureWorks2021
        SET READ_ONLY;
        GO

        3、设置为多用户模式(所有操作完成后再改回多用户模式)

          USE master;
          GO
          ALTER DATABASE AdventureWorks2021
          SET MULTI_USER;
          GO

          注意:

          设置单用户模式时,一般情况下会加上 WITH ROLLBACK IMMEDIATE 这个选项,用于立即回滚进行中的事务。

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

          文章转载自SQL数据库运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

          评论