在数据还原到其他服务器时,登录名会丢失,重建非常麻烦
特別是数据库用户较多的的情况,其实这个问题解决非常简单,
sql server 2005 及以前的产品,
sql server 提供了 sp_change_users_login存储过程,(sql server 2008 须用ALTER USER)
sp_change_users_login有三种动作:report,update_one和auto_fix
具体用法:*/
/*1.列出当前数据库中的孤立用戶*/
exec sp_change_users_login 'report'
/*2.如果已有登录用戶,将用戶名映射为指定的登录名*/
exec sp_change_users_login 'UPDATE_ONE','用戶名','登录名'
or
exec sp_change_users_login 'AUTO_FIX','用戶名'
/*3.如果沒有建立登录用戶*/
exec sp_change_users_login 'Auto_Fix', '登录名', NULL, '登录密码'
/*--相同名字可以使用,处理孤立用户
--在单个数据库上执行*/
exec sp_change_users_login 'AUTO_FIX','db_writer'
exec sp_change_users_login 'AUTO_FIX','db_reader'