数据库选项--访问控制
控制用户对数据库的访问。
SINGLE_USER
指定一次只能有一个用户可以访问数据库。 如果指定了 SINGLE_USER,但已有其他用户连接到数据库,则 ALTER DATABASE 语句将被阻止,直到所有用户都断开与指定数据库的连接为止。 若要取代此行为,请参阅 WITH <termination> 子句。
即使设置此选项的用户已注销,数据库仍保持 SINGLE_USER 模式。 这时,其他用户(但只能是一个)可以连接到数据库。
在将数据库设置为 SINGLE_USER 之前,应验证 AUTO_UPDATE_STATISTICS_ASYNC 选项是否设置为 OFF。 设置为 ON 时,用于更新统计信息的后台线程将与数据库建立连接,您将无法以单用户模式访问数据库。 若要查看此选项的状态,请查询 sys.databases 目录视图中的 is_auto_update_stats_async_on 列。 如果此选项设置为 ON,请执行以下任务:
1.将 AUTO_UPDATE_STATISTICS_ASYNC 设置为 OFF。
2.通过查询 sys.dm_exec_background_job_queue 动态管理视图来检查活动的异步统计信息作业。
如果存在活动的作业,可以允许作业完成或通过使用 KILL STATS JOB 来手动终止这些作业。
RESTRICTED_USER
RESTRICTED_USER 只允许 db_owner 固定数据库角色的成员以及 dbcreator 和 sysadmin 固定服务器角色的成员连接到数据库,不过对连接数没有限制。 在 ALTER DATABASE 语句的终止子句所指定的时间范围内,所有数据库连接都将被断开。 在数据库转换到 RESTRICTED_USER 状态后,不合格用户所做的连接尝试将被拒绝。
MULTI_USER
所有拥有连接到数据库的相应权限的用户,都允许进行连接。
可通过查看 sys.databases 目录视图中的 user_access 列或 DATABASEPROPERTYEX 函数的 UserAccess 属性来确定此选项的状态。