如何阻止登录id从数据库中添加和删除其他用户和登录



我无法阻止登录id从数据库中删除或修改其他用户。

我用下面的代码创建了一个角色:

CREATE ROLE super_users;  
GRANT Select, Alter, Update, Execute, Insert, Delete, Create View, Create Table 
ON database::[sampledb] TO super_users;
REVOKE CONTROL ON database::[sampledb] TO super_users;
--Created user for login
CREATE USER user_1 for login user_1;

--giving role to particular use
EXEC sp_addrolemember 'super_users', 'user_1 '

尽管完成了所有这些,但该登录的用户可以删除或删除其他用户并登录?

有人能帮助我防止登录id做上述事情吗?或者我做错了什么?

正如我们所知,我们可以使用以下脚本来创建DB角色并创建相应的权限。

CREATE ROLE super_users;  
GRANT Select, Alter, Update, Execute, Insert, Delete, Create View, Create Table 
ON database::[sampledb] TO super_users;
--Created user for login
CREATE USER user_1 for login user_1;

--giving role to particular use
EXEC sp_addrolemember 'super_users', 'user_1 '

但在那之后,我们意识到user_1有权删除[sampledb]的其他用户。当我们运行REVOKE CONTROL ON database::[sampledb] to super_users但不工作时,user_1仍然有权限。官方文件对REVOKE CONTROL的解释非常笼统。但它不适用于CREATE,ALTER,Drop other DB Users

因此,我们需要使用以下脚本来进一步限制"super_users"角色的权限。

DENY ALTER ANY USER,ALTER ANY ROLE,CREATE ROLE to super_users

之后,"超级用户"中的"用户_1"不能CREATE,ALTER,Drop other DB Users

最新更新