2009-01-20 50 views
9

我已备份并将MS SQL Server 2005数据库还原到新服务器。将备份还原到其他服务器 - 用户权限

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

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

在SQL Server 2005的Management Studio中,这看起来不太可能,因此一切都很复杂,耗时的。 (我最终必须编写整个数据库的脚本,从新数据库中删除所有登录名和用户,运行脚本,然后通过错误消息的混合物拖移以查看哪些工作以及哪些没有工作。)

任何人都有这方面的经验和建议?

回答

14

最简单的方法是使用微软的sp_help_revlogin,这是一个存储过程,用于脚本所有SQL Server登录,默认和密码,并保持相同的SID。

你可以找到它这个知识库文章中:

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

+0

虽然没有出现做用户权限。 (如GRANT EXECUTE和GRANT SELECT等,等等) – MatBailie 2009-01-20 15:26:48

0

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

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

+0

我们有一个类似的“数据库差异”工具。不幸的是,我们的客户不... – MatBailie 2009-01-20 15:22:25

2

运行以下命令:

EXEC sp_change_users_login 'Report' 

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

enter image description here

Now例如对于每个用户执行此脚本,例如

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

这解决了我的问题。