使用dba_CopyLogins作为数据库迁移的一部分

时间:2015-04-28 19:46:47

标签: sql-server sql-server-2008-r2 sql-server-2012 database-migration

我考虑使用dba_CopyLogins(在SQLsoldier Here上找到,并在dba.stackexchange中的许多迁移相关线程中引用)以在从SQL 2008 R2迁移到SQL的过程中移动登录2012。

编辑:为什么不使用Sp_help_revlogin? 据我了解(请纠正,如果我错了)sp_help_revlogin带有很多警告。它不会将用户映射到数据库,也不会复制密码,也不会处理显式权限。我希望避免使用脚本来传输登录,导致我仍然需要触及50+个人一次登录一个。 我们的大多数用户登录(可能全部,但我没有检查过每一个)都是Windows登录,所以也许我可以在鼹鼠山上建造山脉。

我有一些关于如何正确使用[dba_CopyLogins]的问题,因为对其他用户问题的评论不清楚/矛盾或者没有解决我的问题,并称我为#34;意外DBA&# 34;会好心的。

首先:我从sql 2008 R2(方框A)迁移到Sql 2012(方框B)。 dba_CopyLogins是否意味着在框A或框B上创建/运行?

第二:@ PartnerServer ..是否意味着存在登录的服务器? 这是我放置链接服务器对象名称的地方吗?

第三:框A和B在不同的域上,这有关系吗?

Forth:如果登录已经存在同名,则只需查找此脚本将失败的确认。它只会快速登录,还是整个脚本会中止?

1 个答案:

答案 0 :(得分:0)

我在注释中使用了sp_help_revlogin方法。 你可以在这里阅读更多相关信息:https://support.microsoft.com/en-us/kb/246133

脚本必须在方框A上运行,然后在存储过程中运行。

存储过程将输出用于重新创建登录的脚本。当您在BOX b上运行它时,它将仅在现有登录时失败。

不同的域名。是。这是一个问题。如果您使用集成安全性并且域之间没有信任,则会出现问题。
但是,如果使用集成安全性并且目标域中具有相同的用户,则可以使用sp_help_revlogin调整脚本以将登录映射到目标域。我使用这种方法来对齐东西。

另一个问题是默认数据库。它会丢失,有时这对某些应用程序来说是个问题(配置错误)。

我曾经在源服务器上运行此脚本,并在目标服务器上运行结果:

SELECT 'EXEC sp_defaultdb ''' + name + ''', ''' + dbname + ''''
FROM master.dbo.syslogins
WHERE [name] IS NOT NULL
AND dbname IS NOT NULL
相关问题