开发者社区 问答 正文

技术运维问题-SQL Server使用-ECS 自建的 SQL Server 创建到 RDS For SQL Server 的链接



1. 连接本地 SQL Server


本地打开 SQL Server Management studio,并以 windows 身份验证,如下图。

2. 新建sql查询



3. 添加链接服务器


运行如下 SQL 语句添加链接服务器 exec sp_addlinkedserver
   @server='rds', --被访问的服务器别名,可自定义名称
   @srvproduct='', --SqlServer默认不需要写
   @provider='SQLOLEDB', --不同的库都是不一样的,OLE DB字符
   @datasrc='rds的链接地址' --要访问的服务器
go






4. 添加登录名到用户名的映射


运行如下 SQL 语句,添加登录名到用户名的映射。 exec sp_addlinkedsrvlogin
   @rmtsrvname='rds', --和上面的别名保持一致
   @useself='false', --固定写法
   @locallogin='', --本地操作用户名,此处留空
   @rmtuser='rds_user', --rds中创建的用户名
   @rmtpassword='*******'--rds中该用户名的密码
go






5. 查询 RDS 中的数据


SQL 语句如下 select * from rds.数据库名.schema.表名





6. 完整操作过程的示图




注意:  RDS For SQL Server  不支持创建链接服务器。

展开
收起
梨好橙 2018-09-29 22:05:05 2466 分享 版权
阿里云 AI 助理回答

根据您的操作描述,您正尝试从本地SQL Server实例创建一个链接服务器到阿里云RDS SQL Server。然而,需要注意的是中指出的步骤是基于在ECS实例自建的SQL Server上创建到RDS SQL Server的链接,而实际上明确提到RDS For SQL Server 不支持创建链接服务器

尽管如此,如果您依然需要在本地环境与RDS SQL Server之间进行数据交互,可考虑以下替代方案:

替代方案:通过应用程序或服务间的数据同步

  1. 数据导出与导入

    • 定期将RDS SQL Server的数据导出为文件(如CSV、BACPAC等),然后导入到本地SQL Server,或者反向操作。
    • 注意事项:此方法适用于数据量不大且不频繁变动的场景,因为手动操作费时且可能引入数据延迟。
  2. 使用ETL工具(Extract, Transform, Load):

    • 利用如SSIS (SQL Server Integration Services) 或第三方ETL工具设置定时任务,实现数据的自动抽取、转换和加载。
    • 配置步骤
      1. 在本地SQL Server安装并配置SSIS或选择的ETL工具。
      2. 创建数据迁移包,定义源(RDS SQL Server)和目标(本地SQL Server)数据库。
      3. 设置定时作业执行数据同步。
      4. 注意事项:确保网络连通性,并遵循安全最佳实践,比如使用SSL加密连接。
  3. API/中间件集成

    • 如果应用允许,可以通过开发接口在应用层实现数据交互,例如RESTful API来桥接两边的数据库。
    • 实施要点
      1. 在RDS SQL Server端或本地SQL Server端(或两者皆有)构建API服务。
      2. 应用程序通过API请求获取或推送数据。
      3. 安全提醒:确保API通信的安全性,采用HTTPS协议,实施身份验证和授权机制。

由于直接创建链接服务器至RDS SQL Server不可行,请考虑上述方案之一以满足您的数据交互需求。如果您的应用场景有特殊要求或遇到具体技术难题,建议详细咨询阿里云技术支持获取更专业的指导和帮助。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答