阻止用户将DB设置为单用户模式

时间:2017-04-26 22:06:31

标签: sql sql-server sql-server-2016 sql-server-administration

我们要求应用程序(NextGen ERH)在具有sysadmin角色的凭据下使用SQL Server(2016,本地)DB。

我们的需求是阻止该技术用户将数据库设置为单一用户模式 ​​- 我们注意到有时这种情况会发生并且希望防止将来出现这种情况。

所以,问题是 - 我怎么可能实现它? Revoke alter any database from username - 没有帮助,用户仍然可以将DB设置为单用户模式。

数据库用户是SQL服务器的本地用户,而不是Windows身份验证。

1 个答案:

答案 0 :(得分:0)

如果要阻止整个数据库处于单用户模式,可以使用以下代码

exec sp_dboption 'your_database_name_goes_here', 'single user', 'FALSE'

对于大于2005的sql server版本

ALTER DATABASE 'your_database_name_goes_here' SET MULTI_USER

如果您希望仅通过sysadmin将数据库设置为单服务器模式,则可以使用以下代码

ALTER DATABASE 'your_database_name_goes_here'
SET RESTRICTED_USER WITH ROLLBACK IMMEDIATE

如果技术用户不属于sysadmin角色,则上述代码将阻止他将数据库设置为单用户模式。

修改

使用SSMS将数据库设置为多用户模式

  • 在对象资源管理器中,连接到SQL Server数据库的实例 引擎,然后展开该实例。
  • 右键单击要更改的数据库,然后单击“属性”。
  • 在“数据库属性”对话框中,单击“选项”页面。
  • 从“限制访问”选项中,选择“多个”。
  • 如果其他用户连接到数据库,则会显示“打开连接”消息。要更改属性并关闭所有其他连接,请单击“是”。