4.1 修改数据库状态

4.1 修改数据库状态


4.1.1 脱机

  此操作将使数据库已关闭、完全关闭并标记为脱机。数据库脱机时,不能进行修改。

wKioL1ZlJhLg_RrYAACXfXSguec265.png



4.1.2 联机

  此操作将使该数据库已打开且可用。

wKiom1ZlJf6Ri9ZnAACkBrtr1ZM048.png



4.1.3 限制访问

  在 SSMS 中打开数据库的属性窗口,在“选项”选项卡中的“状态”节点可以修改数据的更新状态以限制客户端的访问。

wKiom1ZlJoSzlBFiAACViokptZk952.png


  数据库的更新状态选项可以为以下四种状态之一:

(1)READ_ONLY

  用户可以从数据库读取数据,但不能修改数据库。


(2)MULTI_USER

  所有拥有连接到数据库的相应权限的用户,都允许进行连接。


(3)SINGLE_USER

  指定一次只能有一个用户可以访问数据库。 如果指定了 SINGLE_USER,但已有其他用户连接到数据库,则 ALTER DATABASE 语句将被阻止,直到所有用户都断开与指定数据库的连接为止。 若要取代此行为,请参阅 WITH <termination> 子句。

  即使设置此选项的用户已注销,数据库仍保持 SINGLE_USER 模式。 这时,其他用户(但只能是一个)可以连接到数据库。


(4)RESTRICTED_USER

  RESTRICTED_USER 只允许 db_owner 固定数据库角色的成员以及 dbcreator 和 sysadmin 固定服务器角色的成员连接到数据库,不过对连接数没有限制。 在 ALTER DATABASE 语句的终止子句所指定的时间范围内,所有数据库连接都将被断开。 在数据库转换到 RESTRICTED_USER 状态后,不合格用户所做的连接尝试将被拒绝。 


  可以通过 SSMS 图形界面修改数据库的更新状态,也可以通过 T-SQL 命令语句完成。例如,将数据库修改为单用户模式,可以执行以下命令语句。其中 NO_WAIT 子句用于指定在切换数据库状态时,如果请求的数据库状态或选项更改只有等待事务自主提交或回滚才能立即完成,该请求将失败。

USE [master]

GO

ALTER DATABASE [SQLDB01] SET  SINGLE_USER WITH NO_WAIT

GO



4.1.4 数据库状态选项

  数据库状态除了切换到 ONLINE 和 OFFLINE 外,还可能有切换为 EMERGENCY 状态。

  EMERGENCY 状态主要用于故障排除,此时数据库将标记为 READ_ONLY,已禁用日志记录,并且仅限 sysadmin 固定服务器角色的成员进行访问。例如,可以将由于损坏了日志文件而标记为可疑的数据库设置为 EMERGENCY 状态。 这样,系统管理员便可对数据库进行只读访问。 只有 sysadmin 固定服务器角色的成员才可以将数据库设置为 EMERGENCY 状态。 


USE [master]

GO

ALTER DATABASE [SQLDB01] SET  EMERGENCY WITH NO_WAIT

GO


  对主题数据库的 ALTER DATABASE 权限是将数据库更改为脱机或紧急状态所必需的。服务器级别 ALTER ANY DATABASE 权限是将数据库从脱机状态移到联机状态所必需的。

  可通过查看 sys.databases 目录视图中的 state 和 state_desc 列或 DATABASEPROPERTYEX 函数的 Status 属性来确定此选项的状态。

  无法将标记为 RESTORING 的数据库设置为 OFFLINE、ONLINE 或 EMERGENCY。 在活动还原操作期间,或者当数据库还原操作或日志文件还原操作由于备份文件损坏而失败时,数据库可以处于 RESTORING 状态。  

本文出自 “SQLServer2014丛书” 博客,谢绝转载!

你可能感兴趣的:(数据库)