- 科普
https://msdn.microsoft.com/en-us/library/ms187972.aspx
RESTORE SERVICE MASTER KEY FROM FILE = 'path_to_file' DECRYPTION BY PASSWORD = 'password' [FORCE]
原因猜测,若db link是用sql 认证登陆的,那么用户名和密码都会保存在master数据库中. sql server的安全机制会对保存下来的密码进行加密码(加密的方式是与系统相关的)
以防止链接服务器被窍。所以即使master数据库也被迁移了,因为加密的方式是系统相关的,新系统上的新实例无法对当前的主密钥进行解密,导致测试连接失败和无法创建新的链接服务器。
解决办法。
在原实例上运行备份master key
BACKUP SERVICE MASTER KEY TO FILE ='D:\backup\MASTER_KEY.BAK' ENCRYPTION BY PASSWORD = '1qaz@WSX'
在新实例上 force还原master key
,一定要force
,一定要force
,一定要force!
RESTORE SERVICE MASTER KEY FROM FILE = 'd:\MASTER_KEY.BAK' DECRYPTION BY PASSWORD = '1qaz@WSX' FORCE
DONE!