代码之家  ›  专栏  ›  技术社区  ›  DavRob60

开发(或测试)服务器和用户映射上的SQL Server RestoreRig备份

  •  0
  • DavRob60  · 技术社区  · 16 年前

    我有3个服务器。

    1. 开发(我的本地开发机器)
    2. 测试目的(测试站点)。
    3. 生产

    我在SQL Server 2005和2008中都有实例。

    因此,当我需要更新的数据时,我从生产服务器获取最新的备份,并在测试或开发服务器上恢复它。我得到了一个进行更改的脚本(恢复文件并对数据库进行一些细微的更改)。

    我的问题是,每次执行此操作时,我使用的SQL Server登录名(在服务器上创建)都会丢失它的数据库用户映射。我必须从还原的数据库中删除它,然后从根安全登录中重新创建它。

    有没有办法在我的还原脚本中包含它?

    2 回复  |  直到 14 年前
        1
  •  1
  •   marc_s MisterSmith    16 年前

    我得把它从 已还原数据库并从中重新创建 根安全登录。

    不,您不需要这样做-至少在SQL Server 2005和2008上不需要这样做。

    你需要做的(就像在脚本中)是:

    USE (your database)
    GO
    
    ALTER USER YourUserNo1 WITH LOGIN = YourServerLoginNo1
    

    将用户关联起来 YourUserNo1 在数据库中 (whatever) 到被调用的服务器登录 YourServerLoginNo1 .

    工作得很好,我会说,不容易!您甚至可以在还原脚本的最后一步执行此操作(我确信您必须反复还原这些内容)。

        2
  •  -1
  •   SarekOfVulcan    14 年前

    在每月将生产数据库恢复到报表服务器时,我会运行:

    EXEC sp_change_users_login 'Auto_Fix', 'usernamegoeshere'