我有一个名为app_user的数据库角色,对除2以外的所有表都有选择,更新,插入和删除权限。在这2个表上,app_user角色只有选择权。
但是,有些用户有权创建数据库用户(使用create login,sp_adduser,sp_addrolemember)。为了能够执行此过程,它们必须具有sysadmin服务器角色。在这种情况下,sysadmin角色位于数据库角色app_user之上,他们可以更新这2个表。目前,我正在为他们提供securityadmin角色,但他们只能在创建数据库用户时执行创建登录。
总结一下, 我想保护除了我的sysadmin帐户之外的所有用户更新2个表,并且我希望一些用户能够创建数据库用户(我的应用程序执行sp,为这类用户授予db权限)。
答案 0 :(得分:0)
您可以在DBA网站上获得更好的答案,但看起来您希望允许用户执行3个命令:CREATE LOGIN
,CREATE USER
和sp_addrolemember
(因为{{ 1}}无法将成员添加到SQL Server 2008中的角色。)
根据文档,所需的最低权限是:
ALTER ROLE
- CREATE LOGIN
ALTER (ANY) LOGIN
- CREATE USER
ALTER ANY USER
- sp_addrolemember
角色许可因此,如果您授予他们上面列出的权限,他们就不需要ALTER
或sysadmin
权限。