我正在尝试将数据库从一台计算机上运行的SQL Server数据库移动到另一台作为测试服务器和原始计算机副本的计算机上。
在主机上,我对数据库myDB进行了备份。 在测试机器上,我删除了现有的旧数据库myDB。 在测试机器上,我恢复了新的数据库myDB。
数据似乎成功了。 但我访问数据库时遇到问题。 所有表的所有者都是'user1',而user1在两个DB上都存在相同的登录名。
尝试访问测试计算机上已恢复的数据库后,虽然user1存在问题。 首先它说user1的密码不正确。 重置密码后,表示user1没有默认数据库集。但它已经设置为myDB。它与恢复的db-myDB同名。
在恢复数据库方面我做错了什么? 在尝试恢复备份之前,我是否需要删除用户user1之外的数据库?我试过了。如何处理更新还原和维护用户访问权限?
答案 0 :(得分:9)
执行恢复后执行
ALTER USER user1 WITH LOGIN = user1
在恢复的数据库中,将修复错误映射的SID
另见Do you still use sp_change_users_login instead of ALTER USER UserName WITH LOGIN = UserName
答案 1 :(得分:0)
要避免此问题,请将您的用户(正在进行备份的用户)添加为备份数据库的用户,并且您的用户应在新实例中具有(登录)访问权限。