如何恢复数据库,以便我可以在没有安全pipe理angular色的服务器上使用它

在SQL 2008实例中,我有一个使用dbcreator和publicangular色的login名。 当我将数据库还原到此服务器上时,我无法使用该数据库,因为其中的所有用户 – >login映射都已损坏(不同服务器上的ID不同)。

有一个sp_change_users_login'Auto_Fix',userName存储过程,但是我不能使用它,因为我不能首先访问数据库。 最后,由于我没有securityAdminangular色,我无法将任何login映射到数据库用户。

有没有办法让我自己的权限来访问数据库作为恢复过程的一部分?

授权的pipe理员可以编写修复映射的帮助程序。 然后它可以签署该程序,并通过代码签名为程序授予必要的授权(请参阅签署存储过程 )。 然后它可以授予您对此帮助程序的执行权限,并且您将能够执行操作(修复损坏的login)而不具有securityAdmin特权。

不,对不起。

“securityAdmin”位于服务器级别,与任何数据库权限无关

注意(仅供参考,没有太多的用处!)这是固定的SQL Server 2011(又名Denali)与“包含数据库”

据我所知,你需要一个有dbo的人来为你解决这个问题。 我可能是错的,也许有一个后门的方式 – 但这是非常devise。 你只有dbcreator,所以一旦你创build了它,你就不能在数据库中混淆了。

我最终的解决scheme是使用数据库中的每个表的批量导入而不是还原。