笔记6-徐 检测孤立用户并恢复孤立用户到新的服务器 解决数据库镜像孤立用户问题

1 --检测孤立用户并恢复孤立用户到新的服务器 解决数据库镜像孤立用户问题
2 --注意:从新连接只能连接SQL登陆账号,不能连接Windows登陆账号
3 --若是不选择从新连接能够使用备份master数据库的方法还原到新的服务器上,能够避免一个数据库有
4 --成千上百个数据库用户的状况
5 SELECT * FROM sys.server_principals
6 SELECT  * FROM sys.database_principals
7
8 --检测孤立用户
9 USE GPOSDB     --要创建镜像的数据库
10 EXEC sys.sp_change_users_login @Action = 'report', -- varchar(10)
11     @UserNamePattern = NULL, -- sysname
12     @LoginName = NULL, -- sysname
13     @Password = NULL -- sysname
14 GO
15
16 --在服务器新建一个同名的登陆账号 ,例如hengshan,而后从新连接hengshan服务器登陆账户与数据库用户hengshan,将
17 --他们的SID改为一致的
18 USE GPOSDB
19 GO
20 EXEC sys.sp_change_users_login @Action = 'update_one', -- varchar(10)
21     @UserNamePattern = 'hengshan', -- sysname<database_user>
22     @LoginName = 'hengshan', -- sysname<login_name>
23     @Password = 'test' -- sysname 将数据库用户密码跟登陆账号密码都设置为test   这里主库的hengshan用户的密码也是test
24
25
26
27 ---------------SQL2008 AUTO_FIX才有用----------------------------------------------
28   
29 USE GPOSDB
30 EXEC sys.sp_change_users_login @Action = 'AUTO_FIX', -- varchar(10)
31 @UserNamePattern =hengshan -- sysname
32
33   
34 ------------------------解决数据库镜像孤立用户问题---------------------
35 --在主数据库中执行以下语句:
36 USE master;
37 select sid,name from syslogins;
38
39
40 --查找出相应的数据库用户名和sid,例如:上述的’myuser’
41 --
42 --在备数据库中执行以下语句:
43
44 USE master;
45 exec sp_addlogin
46 @loginame = 'myuser',
47 @passwd = 'test',
48 @sid = 0x074477739DCA0E499C29394FFFC4ADE4
49
50 --这里的’LoginName’即主数据库中的登陆名,sid便是上述经过SQL语句查找出的sid。
51 --注意一下密码
52
53 --到此为止能够认为备机数据库的环境已经与主机同步了,还差数据库内的数据未同步数据库

相关文章
相关标签/搜索