我想断开所有用户与 SQL Server 的连接,除了
sa
。
这样做的必要性是:
我为我的 ERP 编写了一个数据库维护实用程序。在运行之前,我需要要求所有用户注销。 所以不知何故,我想给他们一条消息(通过 ERP)“5 分钟内断开连接,请保存您的工作并注销,否则您将被踢出”,然后 5 分钟后在服务器上运行命令以断开所有人员的连接。 我希望“sa”或“1 个特定用户”不要断开连接,因为数据库维护实用程序将使用该用户进行数据库连接。
我发现了这个:
use master
alter database MyDatabase set offline with rollback immediate
但是如何说“一个特定用户是例外”?
使用
single_user
代替 offline
:
ALTER database [DatabaseName] SET single_user WITH rollback immediate;
第一个“单用户”将是发出
alter database
命令的用户。 然后,您可以继续只允许特定用户登录:
ALTER login [LoginName] disable;
另外,如果您想回滚“单用户”设置,只需将其返回到
MULTI_USER
ALTER database [DatabaseName] SET MULTI_USER;