可以恢复某些(但不是全部)数据库的SQL Auth用户

时间:2009-03-04 20:01:13

标签: sql-server sql-server-2005

我想在MS SQL 2005中设置一个SQL Auth用户,可以恢复特定实例中的一些但不是全部数据库。

我不确定是否应该使用服务器角色,因为它们似乎适用于所有数据库,但数据库角色成员资格似乎也不正确(我不希望SQL用户可能'丢失'如果他们恢复了不包含数据库角色成员资格的备份,则恢复能力。)

我该如何做到这一点?

1 个答案:

答案 0 :(得分:2)

您无法像这样设置用户。此权限位于服务器/登录级别的数据库/用户之上

登录可以有“dbcreator”,其中包含:

  

......并且可以改变和恢复自己的   数据库。

即使使用GRANT,如果不是不可能,也就是说“GRANT CREATE ANY DATABASE

在某种程度上,还原是一种删除和创建。或者只是一个创作。

我建议最好的解决方案(但可能不是你想听到的......)将在master中创建自己的存储过程,检查权限并在登录设置为用户时发出RESTORE命令在那个DB

示例:sp_checkandrestore 'dbname', 'backupfile'