开发者社区 问答 正文

用户指南-SQL Server链接服务器


本文仅适用于RDS SQL Server 2012及以上版本的高可用系列实例。
目前,创建链接服务器时仍存在如下两个问题:

  • 不能用控制台创建链接服务器。
  • 虽然能用一系列的存储过程创建,但过程较复杂。li
  • 由于RDS的设计,暂时还不能提供通过DNS和对应的IP创建链接服务器的方案。

本文将介绍一个简单的创建链接服务器的方法,如下所示: DECLARE
        @linked_server_name sysname = N'my_link_server',
        @data_source sysname = N'***********',   --style: 10.1.10.1,1433
        @user_name sysname = N'****' ,
        @password nvarchar(128) = N'**********',
        @link_server_options xml
        = N'
            <rds_linked_server>
                <config option="data access">true</config>
                <config option="rpc">true</config>
                <config option="rpc out">true</config>
            </rds_linked_server>
        '
        EXEC sp_rds_add_linked_server
            @linked_server_name,
            @data_source,
            @user_name,
            @password,
            @link_server_options

展开
收起
梨好橙 2018-09-06 23:45:29 1484 分享 版权
阿里云 AI 助理回答

针对RDS SQL Server 2012及以上版本的高可用系列实例,创建链接服务器时面临的两个问题及解决方案如下:

问题一:控制台不支持创建链接服务器

当前阿里云RDS SQL Server管理控制台并不直接提供创建链接服务器的功能。这意味着用户不能通过图形界面完成此操作。

解决方案:使用T-SQL存储过程创建

尽管控制台功能缺失,但您可以通过执行一系列T-SQL命令来实现链接服务器的创建。具体步骤如下:

  1. 准备参数

    • 确定@linked_server_name(例如:N'my_link_server')。
    • 设置@data_source为目标SQL Server实例的地址和端口(格式如:N'****.sqlserver.rds.aliyuncs.com,3888')。
    • 配置@user_name@password以访问目标SQL Server实例。
    • 准备@link_server_options XML字符串来定义链接服务器的行为,例如数据访问、RPC及RPC out权限的开启。
  2. 执行存储过程: 使用sp_rds_add_linked_server存储过程,传入上述准备好的参数,示例代码片段如下:

    DECLARE
       @linked_server_name sysname = N'my_link_server',
       @data_source sysname = N'***********', -- 请替换为目标实例的实际地址和端口
       @user_name sysname = N'****',
       @password nvarchar(128) = N'**********',
       @link_server_options xml = N'
           <rds_linked_server>
               <config option="data access">true</config>
               <config option="rpc">true</config>
               <config option="rpc out">true</config>
           </rds_linked_server>'
    EXEC sp_rds_add_linked_server
       @linked_server_name,
       @data_source,
       @user_name,
       @password,
       @link_server_options
    

问题二:无法通过DNS创建链接服务器

由于RDS SQL Server的设计限制,目前不支持直接通过DNS名称或对应的IP地址配置链接服务器。

解决方案与注意事项:

  • 直接使用目标RDS SQL Server实例的内网或外网IP地址作为@data_source参数的一部分进行配置,确保网络可达性。
  • 虽然不便,但这是在当前技术架构下的可行方法。确保在配置时考虑网络策略和安全组规则,以便正确建立连接。

注意事项:

  • 安全性:在执行上述操作时,请注意保护敏感信息,如用户名和密码,避免泄露。
  • 兼容性:此方法适用于SQL Server 2012至2019的标准高可用版、企业高可用版以及企业集群版的独享型或通用型实例。
  • 权限要求:执行这些操作的账户需要具备足够的权限来创建链接服务器。

通过以上步骤,您可以绕过控制台限制,手动创建并配置链接服务器,满足特定的数据库集成需求。

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