如何断开除sa之外的sql server中的所有用户?

Posted

技术标签:

【中文标题】如何断开除sa之外的sql server中的所有用户?【英文标题】:How to disconnect all users in sql server except sa? 【发布时间】:2012-10-25 07:44:36 【问题描述】:

我想断开所有用户与 SQL Server 的连接,sa 除外。

对此的需求是:

我为我的 ERP 编写了一个数据库维护实用程序。在运行它之前,我需要要求所有用户注销。 因此,我想以某种方式给他们一条消息(通过 ERP)“5 分钟后断开连接,请保存您的工作并注销,否则您将被踢出”,然后在 5 分钟后在服务器上运行命令断开所有人的连接。 我希望不要断开“sa”或无论如何“1 个特定用户”,因为数据库维护实用程序将使用该用户进行数据库连接。

我发现了这个:

use master
alter database MyDatabase set offline with rollback immediate

但是如何说“一个特定的用户是一个例外”?

【问题讨论】:

【参考方案1】:

使用single_user 代替offline

alter database [DatabaseName] set single_user with rollback immediate

最初的“单一用户”将发出alter database 命令。然后您可以继续只允许特定用户登录:

alter login [LoginName] disable

【讨论】:

完美! single_user 是我一直在寻找的。​​span>

以上是关于如何断开除sa之外的sql server中的所有用户?的主要内容,如果未能解决你的问题,请参考以下文章

sql server 2008 sa禁用 windows用户删除了 怎么才能再登陆?

为啥SQL数据库不能用SQL Server身份登录 提示用户sa登录失败。(Microsoft SQL server,错误18456)

为啥SQL数据库不能用SQL Server身份登录 提示用户sa登录失败。(Microsoft SQL server,错误18456)

我的sql server 2008不能登录,用windows和sa都无法登录 标题: 连接到服务器 ---------------------------

SQL server 2000数据库的用户sa的密码忘了怎么办

解决 SQL Server 所有帐号无 sysadmin 权限,且未启用 SQL Server 身份验证,sa 帐号也未启用的问题