SQL Server 2005中"CREATE USER"所需的权限?

3 sql-server permissions login sql-server-2005

我正在尝试从我的应用程序中创建一个SQL Server登录和数据库用户,以及一个自定义应用程序用户行.我希望这些用户能够创建其他用户 - 即应用程序将控制谁可以/不能创建用户但我需要所有用户拥有创建SQL服务器登录和数据库用户的权限.

我已经获得了服务器登录权限 - 即现有用户/登录可以创建新登录 - 通过将登录添加到'securityadmin'服务器角色 - 授予'ALTER ANY LOGIN'权限.

我试图对数据库用户做同样的事情 - 将它们添加到'db_accessadmin'数据库角色 - 这应该授予CREATE USER所需的ALTER ANY USER权限.

但是,每当我尝试使用具有上述权限的用户创建新数据库用户时,我都会获得权限异常.

我尝试手动授予特定用户ALTER ANY USER权限(GRANT ALTER ANY USER to demouser)但这也不起作用.

gbn*_*gbn 8

从技术上讲,是的.无论是对还是错......没有评论.

无论如何,数据库安全性分为两个功能:

  • db_accessadmin来管理用户(或者你提到的"ALTER ANY USER"权限)
  • db_securityadmin允许您管理角色成员身份和对象权限(或"ALTER ANY ROLE权限")

这是针对sp_addrolemember提到的.

您实际上是通过运行sp_addrolemember来更改角色而不是用户,因此"ALTER ANY ROLE"就足够了,而没有完整的db_owner权限.


小智 1

我的不好 - 我发现了问题 - 不是 CREATE USER 失败了,而是随后对“sp_addrolemember”的调用失败了。这需要我未分配的更多权限。

特别是,我需要将我的用户添加到 db_owner 数据库角色,以便允许他们将其他/新用户分配给固定数据库角色。

有没有一种更干净的方法可以让我实现我在这里尝试做的事情 - 即创建允许创建其他用户的用户?