备份迁移 % ' AND SP.name NOT LIKE 'NT AUTHORITY%' AND SP.name NOT LIKE 'NT SERVICE%' AND SP.name NOT IN ('rdsadmin','rdsbackup','rdsuser','rdsmirror','public') 步骤 2 执行步骤 1 脚本可获取如下执行脚本。 图 获取执行脚本 步骤 3 复制步骤 2 中的执行脚本在目标端直接执行,创建出来的Login账号跟原实例密码一致。 步骤 4 将新建的Login账号跟用户当前RDS SQL Server实例上的迁移过来的数据库用户权限进行映射(mapping),以保证该账号在当前实例上的权限一致性,执行脚本如下。 declare @DBName nvarchar(200) declare @Loginname nvarchar(200) declare @SQL nvarchar(MAX) set @Loginname 'TestLogin7' //输入Login名称逐个执行 declare DBNameCursor cursor for select quotename(name)from sys.databases where databaseid > 4 and state 0 and name not like '%$%' and name <> 'rdsadmin' open DBNameCursor fetch next from DBNameCursor into @DBName WHILE @@FETCHSTATUS 0 begin SET @SQL' USE '+ (@DBName)+ ' if exists(select top 1 1 from sys.sysusers where name '''+ @LoginName +''') begin ALTER USER '+@Loginname+' with login '+@Loginname+'; end ' print @SQL EXEC (@SQL) fetch next from DBNameCursor into @DBName end close DBNameCursor deallocate DBNameCursor 以上脚本执行完成后,用户即可在自己的新实例上看到同名的登录账号,并且密码跟权限是完全跟本地一致的。 DBLink连接 DBLink连接指SQL Server支持用户通过创建DBLink连接的方式,跟外部实例上的数据库进行交互,这种方式可以极大的方便用户不同实例间,不同数据库类型之间的数据库查询,同步,比较,所以大部分用户都会在本地实例上用到该服务,但是迁移上云后,本地DBLink是不会自动同步到云上实例的,还需要简单的手动进行同步。 步骤 1 通过微软提供的官方Microsoft SQL Server Management Studio客户端工具连接本地实例与云上实例,同时在“服务器对象> 链接服务器”下找到当前实例的DBLink链接。 图 查看DBLink链接 步骤 2 选中链接服务器,然后按F7,会自动弹出对象资源管理信息页,在该页面中可以方便你快速的自动创建脚本。 图 自动创建脚本 步骤 3 在新窗口中,可以看到当前实例上所有DBLink的创建脚本,仅需复制该脚本到目标实例上,并修改@rmtpassword上的密码即可执行创建操作。 USE [master] GO / Object: LinkedServer [DRSTESTREMOTE] Script Date: 2019/5/25 17:51:50 / EXEC master.dbo.spaddlinkedserver @server N'DRSTESTREMOTE', @srvproductN'', @providerN'SQLNCLI', @datasrcN'DESKTOPB18JH5TSQLSERVER2016EE' / For security reasons the linked server remote logins password is changed with