日期:2014-05-19  浏览次数:20607 次

如果在还原 sql server 数据库的时候使还原出来的用户可登录 sql server ?
我在从新安装了系统之后,还原以前的数据库结果无法使用了!

原因是以前的数据库使用的是建立的用户,在还原后该用户也一并还原了

但是该用户的登录信息未能还原

而先建立登录用户,再还原数据库后,然后将登录用户绑定到数据库时提示用户已经存在!

求解决方案啊,救命~~~~~

------解决方案--------------------
如果还原数据库同时还原用户可

在系统表sysusers中找到对应的sid
用sp_addlogin [ @loginame = ] 'login '
[ , [ @passwd = ] 'password ' ]
[ , [ @defdb = ] 'database ' ]
[ , [ @deflanguage = ] 'language ' ]
[ , [ @sid = ] sid ]
[ , [ @encryptopt= ] 'encryption_option ' ]
加上关联.
或是用
sp_change_users_login将现有数据库用户映射到 SQL Server 登录名。




Transact-SQL 语法约定

语法

sp_change_users_login [ @Action = ] 'action '
[ , [ @UserNamePattern = ] 'user ' ]
[ , [ @LoginName = ] 'login ' ]
[ , [ @Password = ] 'password ' ]




------解决方案--------------------
1. 查看某个数据库的孤立用户:

USE 库名

EXEC sp_change_users_login 'Report '



2. 自动修复某个孤立用户:

USE 库名

EXEC sp_change_users_login 'Auto_Fix ', '孤立用户名 ', NULL, '密码 '

--密码指用户对应的登录不存在时, 系统自动建立登录, 为登录分配的密码

------解决方案--------------------
当前没有建立用户时,用sp_add_login解决
建立用户后恢复数据库(数据库所有者为建立的用户)此时用sp_change_users_login 解决
------解决方案--------------------
不这样弄
试一下
sp_change_users_login @Action = 'Update_One '
, @UserNamePattern = 'user1 '
, @LoginName = 'user1 '
,@Password = 'pwd '