SQL Server链接服务器保存的远程密码重启后失效问题排查
AWS RDS SQL Server链接服务器密码重启后失效的解决方法
问题根源
AWS RDS托管的SQL Server实例,默认不会持久化链接服务器配置中直接输入的密码——重启实例时,这类临时存储的凭据会被系统清除,导致链接服务器无法自动恢复认证。
持久化密码的配置步骤
要让密码在重启后保留,必须使用SQL Server的加密存储凭据来关联链接服务器,具体操作如下:
创建数据库主密钥(如果实例中还未创建)
主密钥用于加密后续创建的凭据,执行以下T-SQL命令:CREATE MASTER KEY ENCRYPTION BY PASSWORD = '你的高强度主密钥密码';注意:这个密码必须妥善保存,丢失后无法解密存储的凭据。
创建存储凭据
用远程SQL Server的账号和密码创建加密凭据:CREATE CREDENTIAL [RemoteSQL_Credential] WITH IDENTITY = '远程SQL登录用户名', SECRET = '远程SQL登录密码';修改链接服务器关联凭据
更新已有的链接服务器,让它使用存储的凭据而非临时密码:EXEC sp_addlinkedsrvlogin @rmtsrvname = '你的链接服务器名称', @useself = 'FALSE', @locallogin = NULL, @rmtuser = '远程SQL登录用户名', @rmtpassword = NULL, @credentialname = 'RemoteSQL_Credential';执行后,链接服务器会从加密的凭据中读取密码,重启实例后不会丢失。
验证方法
配置完成后,手动重启RDS SQL Server实例,然后测试数据库复制任务或链接服务器的连通性(比如执行SELECT * FROM [你的链接服务器名称].[远程数据库名].[架构名].[表名]),确认无需重新输入密码即可正常访问。
额外注意事项
- 确保只有授权的数据库账号能访问存储的凭据,避免权限泄露。
- 如果后续需要修改远程密码,只需更新凭据即可,无需重新配置链接服务器:
ALTER CREDENTIAL [RemoteSQL_Credential] WITH SECRET = '新的远程SQL密码';
内容的提问来源于stack exchange,提问作者C Cost
相关产品推荐
相关产品推荐

