在SQL Server中重建用户映射

某些开发过程中,会有不能直接连接到生产环境的情况。如果情况不是太复杂,这时候一个比较方便的做法是:在自己机器上开发好。然后使用数据库的恢复/覆盖功能,用新版本的数据库替换生产环境下的数据库。

如果是SQL Server,可以先在开发环境中备份数据库为文件,再将文件传输到生产环境,调用“恢复”功能,选中“覆盖现有数据”和“关闭现有的数据库连接”选项,即可实现数据库的替换。

但是这种情况下,如果使用了用户映射功能,则数据库覆盖之后用户映射关系会丢失。如果是完全丢失也就罢了,重建一个就行。按实际的情况是,数据库引擎这头的用户已经没有了,而是数据库中这个用户仍然存在(从开发环境带过来的)。这时候如果按原来的名字去添加用户映射会,报错说“用户已经存在”。这个时候需要写命令重新把用户映射关系连接上,而非重建:

use [DataBaseName]
go
sp_change_users_login 'update_one', 'user_name_already_in_db','user_name_used_to_login'

注释: