将备份还原到其他服务器 - 用户权限

时间:2009-01-20 14:00:29

标签: sql sql-server backup ssms database-restore

我已将MS SQL Server 2005数据库备份并还原到新服务器。

重新创建登录信息,用户和用户权限的最佳方法是什么?

在SQL Server 2000的企业管理器上,我能够编写登录脚本,为用户编写脚本并单独编写用户权限脚本。然后,我可以一个接一个地运行,唯一剩下的手动步骤是设置登录密码(出于安全原因,它不是脚本)

在SQL Server 2005的Management Studio中似乎不太可能,这使得一切都非常繁琐和耗时。 (我最终必须编写整个数据库的脚本,从新数据库中删除所有登录和用户,运行脚本,然后搜索错误消息的混合,以查看哪些有效,哪些无效。)

有没有人对此有任何经验和建议?

3 个答案:

答案 0 :(得分:14)

最简单的方法是使用Microsoft的sp_help_revlogin,这是一个存储过程,可以编写所有SQL Server登录,默认值和密码,并保留相同的SID。

您可以在此知识库文章中找到它:

http://support.microsoft.com/kb/918992

答案 1 :(得分:2)

运行:

EXEC sp_change_users_login 'Report'

这将显示所有孤立用户的列表,例如:

enter image description here

现在为每个用户执行此脚本,例如

exec sp_change_users_login 'Update_One', 'UserNameExample', 'UserNameExample'

这解决了我的问题。

答案 2 :(得分:0)

我使用Red Gate的SQL Compare产品(http://www.red-gate.com/products/SQL_Compare/index.htm)。还有其他类似的产品,但我没有理由寻找一个,因为SQL Compare从来没有让我失望。

你会发现它比你当前的要求更有用,因为它有助于同步所有类型的数据库对象,而不仅仅是登录和权限。