全部产品
阿里云办公

通过Linked Server访问云下自建SQL Server

更新时间:2018-05-04 10:51:02

使用场景

RDS for SQL Server 2012和2016双机高可用版开放了Linked Server功能,不仅可以在RDS之间建立Linked Server,在网络连通的前提下,也支持和云下自建SQL Server建立Linked Server。

本文将介绍如何利用VPN在RDS for SQL Server上建立Linked Server连接到云下自建SQL Server。

注意:和云下自建数据库链接的前提是网络连通,若有问题请咨询相关团队协助解决。

前提条件

  • 要求RDS for SQL Server为以下版本:

    • 2012 标准双机高可用版。
    • 2016 标准双机高可用版。
    • 2012 企业双机高可用版。
    • 2016 企业双机高可用版。
  • RDS for SQL Server实例状态为运行中

  • 在部署VPN网关前,需要做好网络规划:

    • 本地移动设备和云上VPC内需要访问的私网IP地址段不能相同,否则无法通信。

    • 客户端必须能访问Internet。

操作步骤

  1. 利用VPN打通RDS for SQL Server所在VPC和云下机器间的网络连接通道

    1. 创建VPN网关

    2. 创建SSL服务端

    3. 创建客户端证书

    4. 客户端配置

    5. 连接测试

  2. 在RDS for SQL Server上创建Linked Server

利用VPN打通RDS for SQL Server所在VPC和云下机器的网络连接通道

创建VPN网关

  1. 登录VPC管理控制台

  2. 在左侧导航栏,单击VPN > VPN网关

  3. 在VPN网关页面,单击创建VPN网关

  4. 在购买页面,配置VPN网关,完成支付。本操作中VPN网关的配置如下:

    配置项 说明
    地域
    • 选择VPN网关的地域。本操作中选择华东1(杭州)
    • 确保VPC的地域和VPN网关的地域相同。
    专有网络 选择要连接的VPC。
    带宽规格 选择一个带宽规格。带宽规格是VPN网关所具备的公网带宽。
    IPsec-VPN 选择是否开启IPsec-VPN功能,IPsec-VPN功能适用于站点到站点的连接,可以根据您的实际需要选择开启。
    SSL-VPN 选择是否开启SSL-VPN功能。本操作选择开启
    SSL并发连接数 选择您需要同时连接的客户端最大规格。

    SSL

  5. 返回VPN网关页面,单击华东1地域,查看创建的VPN网关。

    说明:VPN网关的创建一般需要1-5分钟。

    刚创建好的VPN网关的状态是准备中,约两分钟左右会变成正常状态。正常状态就表明VPN网关完成了初始化,可以正常使用了。

    gateway

创建SSL服务端

  1. 在专有网络的左侧导航栏,单击VPN > SSL服务端

  2. 单击创建SSL服务端。本操作中SSL服务端的配置如下:

    配置项 说明
    名称 输入SSL服务端的名称。
    VPN网关 选择上面创建的VPN网关
    本端网段 以CIDR地址块的形式输入要连接的网络。单击添加本端网段添加多个本端网段,本端网段可以是任何VPC或交换机的网段,也可以是本地网络的网段。
    客户端网段 以CIDR地址块的形式输入客户端连接服务端时使用的IP地址。
    高级配置 使用默认高级配置。

    server

创建客户端证书

  1. 在专有网络的左侧导航栏,单击VPN > SSL客户端

  2. 单击创建SSL客户端证书

  3. 创建客户端证书对话框,输入客户端证书名称并选择对应的SSL服务端,单击确定

  4. SSL客户端页面,找到已创建的客户端证书,单击下载下载生成的客户端证书。

    client

客户端配置

  1. 下载并安装OpenVPN客户端。

  2. 创建客户端证书中下载的证书解压后复制到OpenVPN安装目录中的config文件夹中。

    config

  3. 单击Connect发起连接。

    connecting

连接测试

在客户端ping已连接的VPC内的一台ECS实例,测试连通性。

说明:确保测试的ECS实例的安全组规则允许客户端远程连接,授权对象为SSL服务端配置中指定的客户端网段。详情请参考安全组配置案例

sr

注意:若连接不通,可能是设置了本地机器防火墙,需要将防火墙设置为允许远端连接。

在RDS for SQL Server上创建Linked Server

  1. 在RDS for SQL Server上创建Linked Server:

    1. USE master
    2. GO
    3. DECLARE
    4. @linked_server_name sysname = N'myTestLinkedServer',
    5. @data_source sysname = N'30.40.13.6,1433',
    6. @user_name sysname = N'TestDbo' ,
    7. @password nvarchar(128) = N'TestDbo@123'
    8. ;
    9. EXEC [dbo].[sp_rds_add_linked_server_ha]
    10. @linked_server_name,
    11. @data_source,
    12. @user_name,
    13. @password
    14. ;
    15. GO

    参数说明:

    • @linked_server_name:Linked Server的名称。

    • @data_source:用户线下SQL Server的IP和端口号,格式为:IP,Port

    • @user_name:用户线下SQL Server的登录用户名。

    • @password:用户线下SQL Server登录名对应的密码。

      命令执行截图

  2. 执行以下命令测试Linked Server:

    SELECT * FROM [myTestLinkedServer].[ReportServer$MS3001].[sys].[tables]

    测试结果图

本文导读目录