我已将MS SQL Server 2005数据库备份并还原到新服务器。
重新创建登录信息,用户和用户权限的最佳方法是什么?
在SQL Server 2000的企业管理器上,我能够编写登录脚本,为用户编写脚本并单独编写用户权限脚本。然后,我可以一个接一个地运行,唯一剩下的手动步骤是设置登录密码(出于安全原因,它不是脚本)
在SQL Server 2005的Management Studio中似乎不太可能,这使得一切都非常繁琐和耗时。 (我最终必须编写整个数据库的脚本,从新数据库中删除所有登录和用户,运行脚本,然后搜索错误消息的混合,以查看哪些有效,哪些无效。)
有没有人对此有任何经验和建议?
答案 0 :(得分:14)
最简单的方法是使用Microsoft的sp_help_revlogin
,这是一个存储过程,可以编写所有SQL Server登录,默认值和密码,并保留相同的SID。
您可以在此知识库文章中找到它:
答案 1 :(得分:2)
运行:
EXEC sp_change_users_login 'Report'
这将显示所有孤立用户的列表,例如:
现在为每个用户执行此脚本,例如
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从来没有让我失望。
你会发现它比你当前的要求更有用,因为它有助于同步所有类型的数据库对象,而不仅仅是登录和权限。