我们需要应用程序(NextGen ERH(与SQL Server(2016年,本地(一起使用SYSADMIN角色。
我们的需求是防止该技术用户将DB设置为单个用户模式 - 我们注意到有时会发生这种情况,并希望防止将来的情况。
那么,问题是 - 我如何实现它?Revoke alter any database from username
-没有帮助,用户仍然能够将DB设置为单个用户模式。
db用户是SQL Server本地的,而不是Windows身份验证。
如果要防止单个用户模式的整个数据库,则可以使用以下代码
exec sp_dboption 'your_database_name_goes_here', 'single user', 'FALSE'
SQL Server版本大于2005
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角色,则以上代码将阻止他将DB设置为单用户模式。
编辑
使用SSMS
将数据库设置为多用户模式- 在Object Explorer中,连接到SQL Server数据库的实例引擎,然后扩展该实例。
- 右键单击要更改的数据库,然后单击属性。
- 在"数据库属性"对话框中,单击"选项"页面。
- 从限制访问选项中,选择多个。
- 如果其他用户连接到数据库,将会出现打开的连接消息。要更改属性并关闭所有其他连接,请单击"是"。