我们要求应用程序(NextGen ERH)在具有sysadmin角色的凭据下使用SQL Server(2016,本地)DB。
我们的需求是阻止该技术用户将数据库设置为单一用户模式 - 我们注意到有时这种情况会发生并且希望防止将来出现这种情况。
所以,问题是 - 我怎么可能实现它? Revoke alter any database from username
- 没有帮助,用户仍然可以将DB设置为单用户模式。
数据库用户是SQL服务器的本地用户,而不是Windows身份验证。
答案 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将数据库设置为多用户模式