使用数据库角色保护表更新(服务器角色已结束)

时间:2013-03-21 10:53:03

标签: sql-server-2008 database-security

我有一个名为app_user的数据库角色,对除2以外的所有表都有选择,更新,插入和删除权限。在这2个表上,app_user角色只有选择权。

但是,有些用户有权创建数据库用户(使用create login,sp_adduser,sp_addrolemember)。为了能够执行此过程,它们必须具有sysadmin服务器角色。在这种情况下,sysadmin角色位于数据库角色app_user之上,他们可以更新这2个表。目前,我正在为他们提供securityadmin角色,但他们只能在创建数据库用户时执行创建登录。

总结一下, 我想保护除了我的sysadmin帐户之外的所有用户更新2个表,并且我希望一些用户能够创建数据库用户(我的应用程序执行sp,为这类用户授予db权限)。

1 个答案:

答案 0 :(得分:0)

您可以在DBA网站上获得更好的答案,但看起来您希望允许用户执行3个命令:CREATE LOGINCREATE USERsp_addrolemember(因为{{ 1}}无法将成员添加到SQL Server 2008中的角色。)

根据文档,所需的最低权限是:

  • ALTER ROLE - CREATE LOGIN
  • ALTER (ANY) LOGIN - CREATE USER
  • ALTER ANY USER - sp_addrolemember角色许可

因此,如果您授予他们上面列出的权限,他们就不需要ALTERsysadmin权限。