如果在还原 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 '