10

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

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

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

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

有没有人有这方面的经验和建议?

4

3 回答 3

14

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

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

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

于 2009-01-20T14:54:57.237 回答
2

运行这个:

EXEC sp_change_users_login 'Report'

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

在此处输入图像描述

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

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

这解决了我的问题。

于 2015-01-08T17:31:01.583 回答
0

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

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

于 2009-01-20T14:52:28.367 回答