0

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

我们的需要是防止该技术用户将 DB 设置为单用户模式——我们注意到有时会发生这种情况,并希望防止将来出现这种情况。

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

DB 用户是本地 SQL 服务器,而不是 Windows 身份验证。

4

1 回答 1

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

如果您希望数据库仅由系统管理员设置为单服务器模式,您可以使用以下代码

ALTER DATABASE 'your_database_name_goes_here'
SET RESTRICTED_USER WITH ROLLBACK IMMEDIATE

如果 tech 用户不属于 sysadmin 角色,那么上面的代码将阻止他将 db 设置为单用户模式。

编辑

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

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