快速创建并使用RDS SQL Server实例

更新时间:
复制为 MD 格式

本教程旨在指导您通过控制台快速创建RDS SQL Server实例,在实例中配置数据库和账号信息,并提供多种连接到RDS实例的方法,帮助您快速入手RDS SQL Server产品。

若您初次使用阿里云RDS,请先了解阿里云RDS使用限制

前提条件

通过RAM用户创建RDS实例时,该RAM用户必须拥有AliyunRDSFullAccess权限和AliyunBSSOrderAccess权限。如何授权,请参见RAM资源授权

费用说明

创建RDS SQL Server实例会产生实例规格费用与存储费用,其与实例的付费方式、系列、规格、存储类型和存储空间大小等参数相关。

1. 快速创建RDS SQL Server实例

本教程以快捷创建方式为例,介绍如何通过控制台快速创建RDS SQL Server实例。相比于标准创建方式,快捷创建能帮助您略去非必须的参数设置,专注于核心参数的选择,您仅需设置关键参数即可完成创建,旨在帮助您快速入门。如需对创建实例时的其他参数进行特殊配置,请参见创建RDS SQL Server实例

  1. 访问RDS管理控制台,单击创建实例进入RDS实例售卖页。

  2. 在售卖页顶部选择快捷创建方式。

  3. 选择付费类型。RDS SQL Server提供了两种付费类型,其主要适用场景与特点如下:

    付费类型

    适用场景

    优点

    包年包月

    长期使用RDS SQL Server实例。

    包年包月比按量付费更实惠,且购买时长越长,折扣越多。

    按量付费

    短期使用RDS SQL Server实例。

    可随时释放实例,停止计费。

    您也可以先创建按量付费实例,确认实例符合要求后将计费方式从按量付费转为包年包月

  4. 选择要在哪个地域创建RDS实例。

    重要

    RDS实例购买后,地域不支持更改,请谨慎选择。

    • 如果您已购买云服务器ECS,并且期望ECSRDS内网互通,请选择ECS实例所在地域。否则,ECS实例只能通过外网访问RDS实例,无法发挥最佳性能。

    • 如果您要通过ECS以外的设备(例如本地服务器或电脑)连接RDS实例,则选择将RDS实例创建在离该设备较近的地域,可以降低网络时延。后续通过外网地址连接RDS。

  5. 选择引擎,本教程以SQLServer数据库为例。

  6. 选择实例规格

    RDS SQL Server提供了多种实例规格,您可以根据实际业务需要进行选择。若此规格无法满足需要,也可在购买后变更配置或在页面顶部选择标准创建进行自定义。更多信息,请参见创建RDS SQL Server实例

  7. 选择存储空间

    存储空间包括数据空间、系统文件空间、日志文件空间和事务文件空间。存储空间范围(最小值和最大值)与前面选择的实例规格和存储类型有关。您可以调整存储空间,最少增减5 GB。

    说明

    部分本地SSD盘的存储空间大小与实例规格绑定,ESSD云盘或SSD云盘不受此限制。

  8. 设置网络和交换机,网络类型默认配置为专有网络(VPC)。

    重要
    • VPC相同,交换机不同,ECS实例与RDS实例也可以内网互通。

    • 实例创建后暂不支持变更VPC,如果您需要通过ECS内网连接RDS实例,除了需要在相同地域外,还需要确保VPC一致。

  9. (可选)查看更多配置项。在快捷创建中,阿里云已自动为您默认配置了其他参数,您可以单击更多配置(选填)查看其他信息。

  10. 选择实例购买数量快捷创建支持一次性最多购买10个实例,请根据实际需要选择,本教程默认选择1个。

  11. (可选)如果付费类型选择包年包月,则还需要设置购买时长,请根据实际需要选择。

    您还可以选中启用自动续费,避免因忘记续费而导致业务中断。

  12. 单击确认下单,并完成支付。

  13. 查看实例。进入实例列表,在上方选择创建实例时选择的地域,根据创建时间找到刚刚创建的实例。

    说明

    您可以进入任务中心页面,查看实例创建进度。实例创建需要约1~10分钟,待实例创建完成后,刷新实例列表页面查看。

2. 创建数据库

  1. 访问RDS实例列表,在上方选择步骤1实例创建所在地域,然后单击目标实例ID。

    image

  2. 在左侧导航栏中单击数据库管理,然后单击创建数据库按钮。

  3. 在弹出的面板中,设置数据库参数。

    本教程设置数据库(DB)名称dbtest支持字符集Chinese_PRC_CI_AS,然后单击创建

    image

  4. 您可以在数据库管理页面,或连接SQL Server实例后查看上一步新建的数据库。

    image

3. 创建账号

  1. 在实例详情页,单击左侧导航栏账号管理

  2. 单击账号密码策略,预先设置账号的密码使用时长策略,增强账号安全性。

    说明

    共享型Serverless实例暂不支持设置自定义账号密码策略,此类实例可跳过该步执行下一步。

    点击查看本教程的配置示例

    设置每90天修改一次密码,且修改后的密码必须使用至少30天,因此本教程设置最长密码使用时间90天,最短密码使用时间30天。

    image

  3. 单击创建账号,在弹出的面板中设置账号参数。

    说明

    账号重名或账号创建过于频繁(上一个账号还未创建结束)可能会有报错提示,出现该情况时,请检查账号名称是否重复或在上一个账号创建完成后再创建下一个账号。

    image

    1. 填写数据库账号。本教程设置数据库账号testuser

    2. 选择账号类型。RDS SQL Server数据库账号允许创建高权限账号普通账号超级权限账号。本教程以创建高权限账号为例,更多请参见其他账号的创建方法

      重要

      RDS SQL Server实例的第一个账号必须是高权限账号,且每个实例仅允许创建一个高权限账号,该账号拥有实例下所有数据库的读写权限。如果您创建失败,则说明您实例中已有一个高权限账号。

    3. 填写新密码确认密码

    4. 为该高权限账号应用步骤2设置的密码策略。

  4. 单击确定,完成账号创建。

  5. 您可以刷新账号管理页面查看新建的高权限账号。

    image

4. 配置实例安全访问

如果您准备通过命令行或客户端登录数据库,则需要预先将ECS或本地设备的IP地址写入RDS SQL Server实例的IP白名单,然后根据访问类型获取实例对应的内网连接地址或外网连接地址后,才能正常访问实例;如果您准备通过阿里云的DMS登录数据库,则可直接执行步骤5。

4.1 设置IP白名单

  1. 在实例详情页,单击左侧导航栏白名单与安全组

  2. 单击添加白名单分组,填写分组名称并把应用服务器IP地址添加至白名单中。

    image

    点击查看常见IP地址的获取方法

    场景

    需获取的IP地址

    如何获取

    满足内网访问的条件

    ACK集群的容器的对应IP

    • ACK集群的容器网络插件Flannel时,添加应用程序所在的节点IP。

    • ACK集群的容器网络插件为Terway时,添加应用程序所在的Pod IP。

    您在目标ACK集群的容器组页面,查Pod IP和节点IP。

    ECS实例私网IP

    1. 点此打开ECS实例列表

    2. 在顶部选择实例所在地域。

    3. 在实例列表可以看到私网IP和公网IP。

      image

    需要通过ECS实例访问RDS实例,但不满足内网访问的条件

    ECS实例公网IP

    需要通过本地设备访问RDS实例

    本地设备公网IP

    在本地设备中,使用搜索引擎(如百度)搜索IP。

    说明

    该方式获取的IP地址若不准确,请通过其他方案获取。

  3. 单击确定,完成白名单配置。

  4. 您可以刷新白名单与安全组页面查看已添加的白名单。

    image

4.2 选择连接类型

连接类型分为内网访问和外网访问,如果您符合内网访问条件,您需要使用实例的内网连接地址进行远程连接;如果您不符合内网访问条件或使用本地设备访问RDS SQL Server实例,则需要使用实例的外网连接地址进行远程连接。内网访问条件与获取内外网连接地址的方法如下:

重要

若您需要通过内网访问实例,则需满足以下条件:

  • 使用阿里云服务器访问,且服务器与RDS实例同一地域、同一网络类型。

  • 如果服务器与实例的网络类型均为专有网络(VPC),则专有网络ID也需要相同。

场景

需获取的RDS实例地址

如何获取

满足内网访问条件

RDS内网地址

在实例详情页,单击左侧导航栏数据库连接,即可查看实例地址和端口号。

image

说明

点击开通外网地址后,才会显示外网连接地址。

ECS实例访问RDS实例,但不满足内网访问条件

RDS外网地址

从本地设备访问RDS实例

5. 连接RDS SQL Server实例

您可以通过阿里云DMS直接登录至SQL Server数据库,或通过客户端远程连接至SQL Server数据库,或者通过Java应用程序连接至SQL Server数据库。

方式一:通过DMS登录实例

数据管理DMS(Data Management)是一款支撑数据全生命周期的一站式数据管理平台,其提供全域数据资产管理、数据治理、数据库设计开发、数据集成、数据开发和数据消费等功能,同时DMS内置的数据灾备还提供了低成本高可靠的备份恢复能力,致力于帮助企业高效、安全地挖掘数据价值,助力企业数字化转型。

您可以使用DMS快速便捷地登录RDS SQL Server实例进行数据的管理与使用,无需关注实例IP白名单的设置与实例连接类型的选择。

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。

  2. 单击登录数据库进入DMS登录页面。

    image..png

  3. 登录实例弹窗中,填写登录信息,并单击登录

    image

    • 选择访问方式,本教程以账号+密码登录为例。

    • 填写数据库账号数据库密码,本教程以高权限账号testuser和用户自定义密码为例。

    • 选择管控模式。本教程以自由操作为例。

      说明
      • 自由操作是免费的,稳定变更安全协同收取一定费用

      • 相比于自由操作管控模式稳定变更安全协同提供更多的功能支持和更强的数据库管控能力,如果您是试用或体验RDS SQL Server产品,建议您选择自由操作模式。

  4. 查看数据库。登录成功后您可以在DMS页面左侧的已登录实例中查看新创建的数据库,本教程以dbtest数据库为例,您也可以双击其他数据库进行切换。

    image

    说明

    如果实例存在,但在DMS已登录实例列表中未找到目标数据库,可能是:

    • 登录账号无目标数据库的访问权限:您可前往RDS实例详情页的账号管理页面单击目标账号操作下的修改权限进行授权

    • 元数据未同步导致目录无法显示:请将鼠标悬浮在目标数据库所属实例上,单击实例名右侧的image按钮,即可刷新数据库列表,显示目标数据库。

  5. DMS中成功登录SQL Server数据库后,即可在其SQL Console界面中创建数据库、创建表、查询和变更表数据等。

方式二:通过SSMS客户端连接实例

Microsoft SQL Server Management Studio(SSMS)是一个用于管理和处理SQL Server的图形化界面工具,它可以用于连接不同的SQL Server数据库,包括RDS SQL Server实例、本地SQL Server实例或云上SQL Server实例等。

本教程以Microsoft SQL Server Management Studio 19.0(SSMS)版本为例,向您介绍通过客户端连接RDS SQL Server实例的方法。

说明
  • 建议下载最新版本客户端,以支持所有SQL Server服务端版本。

  • 使用客户端方式连接实例需要预先设置IP白名单并按需获取实例连接地址

  1. 打开本地Microsoft SQL Server Management Studio 19.0(SSMS)客户端。

  2. 选择连接 > 数据库引擎

  3. 在弹出的连接到服务器对话框中输入登录信息

    image..png

    参数

    本教程取值

    说明

    服务器名称

    rm-2ze****.rds.aliyuncs.com,1433

    RDS实例的连接地址及端口号,填写开通外网地址步骤时所获取的外网地址外网端口,连接地址与端口号间用半角逗号(,)隔开。

    身份验证

    SQL Server身份验证

    SQL Server的验证方式。

    登录名

    testuser

    填写RDS实例的账号名称。

    密码

    Test_pw123

    填写RDS实例的账号密码。

  4. 单击连接,即可连接到实例。

    连接成功后,SSMS左侧将显示数据库连接信息。

    image..png

方式三:通过Java应用程序连接实例

下文将介绍如何通过Java应用程序利用JDBC连接到RDS SQL Server实例。

说明

在连接数据库前,请预先将应用程序运行环境的IP地址(如ECS或本地设备的IP地址)加入到RDS SQL Server实例的IP白名单中。具体操作,请参见设置白名单

  1. Maven项目中添加Microsoft JDBC驱动程序,以访问SQL Server数据库。

    方法一:手动在Maven项目的pom.xml文件中添加依赖

    说明
    • 建议根据对应的Java版本选择依赖的版本,例如12.2.0包中的mssql-jdbc-12.2.0.jre8.jar文件应与Java 8(或更高版本)配合使用。

    • 如何查看依赖的历史版本,请参见官方教程

    <dependency>
      <groupId>com.microsoft.sqlserver</groupId>
      <artifactId>mssql-jdbc</artifactId>
      <version>12.2.0.jre8</version> <!-- 请检查最新的版本号 -->
    </dependency>

    image

    依赖添加完成后,单击imagepom.xml 文件中的依赖会自动下载。

    image

    方法二:手动下载JDBC并将其添加到Maven项目的类路径中

    1. Microsoft JDBC Driver for SQL Server下载符合您Java版本的驱动程序。

      Microsoft JDBC Driver for SQL Server是一种Type 4 JDBC驱动程序,通过Java平台上可用的标准JDBC应用程序编程接口 (API) 提供数据库连接。它可以从任何Java应用程序、应用程序服务器或支持Java的小程序访问SQL Server。
    2. 下载并解压缩后,手动将JAR文件(例如sqljdbc4.jarsqljdbc.jar)保存到项目中。

      本教程以IntelliJ IDEA为示例,演示添加方法:

      image

      image

      image

  2. 编写通过Java连接SQL Server数据库的示例代码,如下:

    请将示例中的连接地址、数据库名、用户名和密码,以及SQL命令替换为实际的信息。更多详情,请参见查看或修改连接地址和端口

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.sql.ResultSet;
    
    public class testMSSQLJDBC {
    
        public static void main(String[] args) {
            // 输入数据库连接地址(应用程序部署在ECS内使用内网地址,部署在本地或其他环境请使用外网地址)
            String url = "jdbc:sqlserver://rm-2vc367d081200******.mssql.cn-chengdu.rds.aliyuncs.com:1433;"
                    + "database=YourDatabaseName;"
                    + "encrypt=true;"
                    + "trustServerCertificate=true;"
                    + "loginTimeout=30;";
            // 用户名和密码(不使用Windows身份验证时,需指定用户名和密码)
            String username = "usernametest";
            String password = "Passwordtest!";
    
            // 创建连接对象
            Connection connection = null;
    
            try {
                // 加载JDBC驱动程序
                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                // 建立与SQL Server数据库的连接
                connection = DriverManager.getConnection(url, username, password);
                System.out.println("连接成功!");
    
                // 创建Statement对象用于执行SQL命令
                Statement statement = connection.createStatement();
                // 执行SQL查询,请按需替换自己的表名和列名
                String sql = "SELECT TOP 10 * FROM YourTableName";
                ResultSet resultSet = statement.executeQuery(sql);
    
                // 处理结果集
                while (resultSet.next()) {
                    System.out.println("列1: " + resultSet.getString("YourColumnName1"));
                    System.out.println("列2: " + resultSet.getString("YourColumnName2"));
                }
    
                // 关闭结果集
                resultSet.close();
                // 关闭Statement
                statement.close();
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                // 关闭连接
                if (connection != null) {
                    try {
                        connection.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
  3. 测试连接是否成功。

    将上述代码保存为SqlServerConnection.java文件,在命令行或IDE中编译并运行该程序。若配置正确,程序将输出类似如下结果,表示程序已成功连接到SQL Server数据库。

    image

后续指引

附录:快速入门视频指导

常见问题

如何查看阿里云账号下的RDS实例总数量?

登录RDS概览页,查看阿里云账号下所有数据库引擎的RDS实例总数量。在该页面您还可以看到实例分布在哪些地域,以及各地域下正在运行中的实例数量。

image

为什么创建实例后,实例列表看不到创建中的实例?

可能原因

说明

建议

地域错误

您所在地域和您创建实例时选择的地域不一致。

在页面左上角切换地域。

可用区内资源不足

可用区内资源不足,导致创建失败。

创建失败您可以在订单列表里看到退款。

选择其它可用区后重试。

RAM权限策略禁止创建未加密的RDS实例

已配置RAM权限策略,禁止RAM用户创建未加密的RDS实例。

  • RAM用户尝试创建高性能本地盘实例,实例创建失败(高性能本地盘实例无法在创建时设置磁盘加密)。

  • RAM用户尝试创建云盘实例,但未设置云盘加密,实例创建失败。

更多信息,请参见通过RAM权限策略限制RAM用户权限

创建实例时,存储类型选择云盘,选中云盘加密并设置密钥后重试。

相关文档