Amazon RDS for Microsoft SQL Server - Amazon Relational Database Service

Amazon RDS for Microsoft SQL Server

Amazon RDS supports several versions and editions of Microsoft SQL Server. The following table shows the most recent supported minor version of each major version. For the full list of supported versions, editions, and RDS engine versions, see Microsoft SQL Server versions on Amazon RDS.

Major version Service Pack / GDR Cumulative Update Minor version Knowledge Base Article Release Date
SQL Server 2022 CU11 16.0.4105.2 KB5032679 January 11, 2024
SQL Server 2019 CU25 15.0.4355.3 KB5033688 February 15, 2024
SQL Server 2017 GDR CU31 14.0.3465.1 KB5029376 October 10, 2023
SQL Server 2016 SP3 GDR 13.0.6435.1 KB5029186 October 10, 2023
SQL Server 2014 SP3 GDR CU4 12.0.6449.1 KB5029185 October 10, 2023

For information about licensing for SQL Server, see Licensing Microsoft SQL Server on Amazon RDS. For information about SQL Server builds, see this Microsoft support article about the latest SQL Server builds.

With Amazon RDS, you can create DB instances and DB snapshots, point-in-time restores, and automated or manual backups. DB instances running SQL Server can be used inside a VPC. You can also use Secure Sockets Layer (SSL) to connect to a DB instance running SQL Server, and you can use transparent data encryption (TDE) to encrypt data at rest. Amazon RDS currently supports Multi-AZ deployments for SQL Server using SQL Server Database Mirroring (DBM) or Always On Availability Groups (AGs) as a high-availability, failover solution.

To deliver a managed service experience, Amazon RDS does not provide shell access to DB instances, and it restricts access to certain system procedures and tables that require advanced privileges. Amazon RDS supports access to databases on a DB instance using any standard SQL client application such as Microsoft SQL Server Management Studio. Amazon RDS does not allow direct host access to a DB instance via Telnet, Secure Shell (SSH), or Windows Remote Desktop Connection. When you create a DB instance, the master user is assigned to the db_owner role for all user databases on that instance, and has all database-level permissions except for those that are used for backups. Amazon RDS manages backups for you.

Before creating your first DB instance, you should complete the steps in the setting up section of this guide. For more information, see Setting up for Amazon RDS.

Common management tasks for Microsoft SQL Server on Amazon RDS

The following are the common management tasks you perform with an Amazon RDS for SQL Server DB instance, with links to relevant documentation for each task.

There are also advanced administrative tasks for working with SQL Server DB instances. For more information, see the following documentation:

Limitations for Microsoft SQL Server DB instances

The Amazon RDS implementation of Microsoft SQL Server on a DB instance has some limitations that you should be aware of:

  • The maximum number of databases supported on a DB instance depends on the instance class type and the availability mode—Single-AZ, Multi-AZ Database Mirroring (DBM), or Multi-AZ Availability Groups (AGs). The Microsoft SQL Server system databases don't count toward this limit.

    The following table shows the maximum number of supported databases for each instance class type and availability mode. Use this table to help you decide if you can move from one instance class type to another, or from one availability mode to another. If your source DB instance has more databases than the target instance class type or availability mode can support, modifying the DB instance fails. You can see the status of your request in the Events pane.

    Instance class type Single-AZ Multi-AZ with DBM Multi-AZ with Always On AGs
    db.*.micro to db.*.medium 30 N/A N/A
    db.*.large 30 30 30
    db.*.xlarge to db.*.16xlarge 100 50 75
    db.*.24xlarge 100 50 100

    * Represents the different instance class types.

    For example, let's say that your DB instance runs on a db.*.16xlarge with Single-AZ and that it has 76 databases. You modify the DB instance to upgrade to using Multi-AZ Always On AGs. This upgrade fails, because your DB instance contains more databases than your target configuration can support. If you upgrade your instance class type to db.*.24xlarge instead, the modification succeeds.

    If the upgrade fails, you see events and messages similar to the following:

    • Unable to modify database instance class. The instance has 76 databases, but after conversion it would only support 75.

    • Unable to convert the DB instance to Multi-AZ: The instance has 76 databases, but after conversion it would only support 75.

    If the point-in-time restore or snapshot restore fails, you see events and messages similar to the following:

    • Database instance put into incompatible-restore. The instance has 76 databases, but after conversion it would only support 75.

  • The following ports are reserved for Amazon RDS, and you can't use them when you create a DB instance: 1234, 1434, 3260, 3343, 3389, 47001, and 49152-49156.

  • Client connections from IP addresses within the range 169.254.0.0/16 are not permitted. This is the Automatic Private IP Addressing Range (APIPA), which is used for local-link addressing.

  • SQL Server Standard Edition uses only a subset of the available processors if the DB instance has more processors than the software limits (24 cores, 4 sockets, and 128GB RAM). Examples of this are the db.m5.24xlarge and db.r5.24xlarge instance classes.

    For more information, see the table of scale limits under Editions and supported features of SQL Server 2019 (15.x) in the Microsoft documentation.

  • Amazon RDS for SQL Server doesn't support importing data into the msdb database.

  • You can't rename databases on a DB instance in a SQL Server Multi-AZ deployment.

  • Make sure that you use these guidelines when setting the following DB parameters on RDS for SQL Server:

    • max server memory (mb) >= 256 MB

    • max worker threads >= (number of logical CPUs * 7)

    For more information on setting DB parameters, see Working with parameter groups.

  • The maximum storage size for SQL Server DB instances is the following:

    • General Purpose (SSD) storage – 16 TiB for all editions

    • Provisioned IOPS storage – 16 TiB for all editions

    • Magnetic storage – 1 TiB for all editions

    If you have a scenario that requires a larger amount of storage, you can use sharding across multiple DB instances to get around the limit. This approach requires data-dependent routing logic in applications that connect to the sharded system. You can use an existing sharding framework, or you can write custom code to enable sharding. If you use an existing framework, the framework can't install any components on the same server as the DB instance.

  • The minimum storage size for SQL Server DB instances is the following:

    • General Purpose (SSD) storage – 20 GiB for Enterprise, Standard, Web, and Express Editions

    • Provisioned IOPS storage – 20 GiB for Enterprise, Standard, Web, and Express Editions

    • Magnetic storage – 20 GiB for Enterprise, Standard, Web, and Express Editions

  • Amazon RDS doesn't support running these services on the same server as your RDS DB instance:

    • Data Quality Services

    • Master Data Services

    To use these features, we recommend that you install SQL Server on an Amazon EC2 instance, or use an on-premises SQL Server instance. In these cases, the EC2 or SQL Server instance acts as the Master Data Services server for your SQL Server DB instance on Amazon RDS. You can install SQL Server on an Amazon EC2 instance with Amazon EBS storage, pursuant to Microsoft licensing policies.

  • Because of limitations in Microsoft SQL Server, restoring to a point in time before successfully running DROP DATABASE might not reflect the state of that database at that point in time. For example, the dropped database is typically restored to its state up to 5 minutes before the DROP DATABASE command was issued. This type of restore means that you can't restore the transactions made during those few minutes on your dropped database. To work around this, you can reissue the DROP DATABASE command after the restore operation is completed. Dropping a database removes the transaction logs for that database.

  • For SQL Server, you create your databases after you create your DB instance. Database names follow the usual SQL Server naming rules with the following differences:

    • Database names can't start with rdsadmin.

    • They can't start or end with a space or a tab.

    • They can't contain any of the characters that create a new line.

    • They can't contain a single quote (').

DB instance class support for Microsoft SQL Server

The computation and memory capacity of a DB instance is determined by its DB instance class. The DB instance class you need depends on your processing power and memory requirements. For more information, see DB instance classes.

The following list of DB instance classes supported for Microsoft SQL Server is provided here for your convenience. For the most current list, see the RDS console: https://console.aws.amazon.com/rds/.

Not all DB instance classes are available on all supported SQL Server minor versions. For example, some newer DB instance classes such as db.r6i aren't available on older minor versions. You can use the describe-orderable-db-instance-options AWS CLI command to find out which DB instance classes are available for your SQL Server edition and version.

SQL Server edition 2022 and 2019 support range 2017 and 2016 support range 2014 support range

Enterprise Edition

db.t3.xlargedb.t3.2xlarge

db.r5.xlargedb.r5.24xlarge

db.r5b.xlargedb.r5b.24xlarge

db.r5d.xlargedb.r5d.24xlarge

db.r6i.xlargedb.r6i.32xlarge

db.m5.xlargedb.m5.24xlarge

db.m5d.xlargedb.m5d.24xlarge

db.m6i.xlargedb.m6i.32xlarge

db.x1.16xlargedb.x1.32xlarge

db.x1e.xlargedb.x1e.32xlarge

db.x2iedn.xlargedb.x2iedn.32xlarge

db.z1d.xlargedb.z1d.12xlarge

db.t3.xlargedb.t3.2xlarge

db.r3.xlargedb.r3.8xlarge

db.r4.xlargedb.r4.16xlarge

db.r5.xlargedb.r5.24xlarge

db.r5b.xlargedb.r5b.24xlarge

db.r5d.xlargedb.r5d.24xlarge

db.r6i.xlargedb.r6i.32xlarge

db.m4.xlargedb.m4.16xlarge

db.m5.xlargedb.m5.24xlarge

db.m5d.xlargedb.m5d.24xlarge

db.m6i.xlargedb.m6i.32xlarge

db.x1.16xlargedb.x1.32xlarge

db.x1e.xlargedb.x1e.32xlarge

db.x2iedn.xlargedb.x2iedn.32xlarge

db.z1d.xlargedb.z1d.12xlarge

db.t3.xlargedb.t3.2xlarge

db.r3.xlargedb.r3.8xlarge

db.r4.xlargedb.r4.8xlarge

db.r5.xlargedb.r5.24xlarge

db.r5b.xlargedb.r5b.24xlarge

db.r5d.xlargedb.r5d.24xlarge

db.r6i.xlargedb.r6i.32xlarge

db.m4.xlargedb.m4.10xlarge

db.m5.xlargedb.m5.24xlarge

db.m5d.xlargedb.m5d.24xlarge

db.m6i.xlargedb.m6i.32xlarge

db.x1.16xlargedb.x1.32xlarge

db.x1e.xlargedb.x1e.32xlarge

db.x2iedn.xlargedb.x2iedn.32xlarge

Standard Edition

db.t3.xlargedb.t3.2xlarge

db.r5.largedb.r5.24xlarge

db.r5b.largedb.r5b.24xlarge

db.r5d.largedb.r5d.24xlarge

db.r6i.largedb.r6i.8xlarge

db.m5.largedb.m5.24xlarge

db.m5d.largedb.m5d.24xlarge

db.m6i.largedb.m6i.8xlarge

db.x1.16xlargedb.x1.32xlarge

db.x1e.xlargedb.x1e.32xlarge

db.x2iedn.xlargedb.x2iedn.32xlarge

db.z1d.largedb.z1d.12xlarge

db.t3.xlargedb.t3.2xlarge

db.r4.largedb.r4.16xlarge

db.r5.largedb.r5.24xlarge

db.r5b.largedb.r5b.24xlarge

db.r5d.largedb.r5d.24xlarge

db.r6i.largedb.r6i.8xlarge

db.m4.largedb.m4.16xlarge

db.m5.largedb.m5.24xlarge

db.m5d.largedb.m5d.24xlarge

db.m6i.largedb.m6i.8xlarge

db.x1.16xlargedb.x1.32xlarge

db.x1e.xlargedb.x1e.32xlarge

db.x2iedn.xlargedb.x2iedn.32xlarge

db.z1d.largedb.z1d.12xlarge

db.t3.xlargedb.t3.2xlarge

db.r3.largedb.r3.8xlarge

db.r4.largedb.r4.8xlarge

db.r5.largedb.r5.24xlarge

db.r5b.largedb.r5b.24xlarge

db.r5d.largedb.r5d.24xlarge

db.r6i.largedb.r6i.8xlarge

db.m3.mediumdb.m3.2xlarge

db.m4.largedb.m4.10xlarge

db.m5.largedb.m5.24xlarge

db.m5d.largedb.m5d.24xlarge

db.m6i.largedb.m6i.8xlarge

db.x1.16xlargedb.x1.32xlarge

db.x1e.xlargedb.x1e.32xlarge

db.x2iedn.xlargedb.x2iedn.32xlarge

Web Edition

db.t3.smalldb.t3.2xlarge

db.r5.largedb.r5.4xlarge

db.r5b.largedb.r5b.4xlarge

db.r5d.largedb.r5d.4xlarge

db.r6i.largedb.r6i.4xlarge

db.m5.largedb.m5.4xlarge

db.m5d.largedb.m5d.4xlarge

db.m6i.largedb.m6i.4xlarge

db.z1d.largedb.z1d.3xlarge

db.t2.smalldb.t2.medium

db.t3.smalldb.t3.2xlarge

db.r4.largedb.r4.2xlarge

db.r5.largedb.r5.4xlarge

db.r5b.largedb.r5b.4xlarge

db.r5d.largedb.r5d.4xlarge

db.r6i.largedb.r6i.4xlarge

db.m4.largedb.m4.4xlarge

db.m5.largedb.m5.4xlarge

db.m5d.largedb.m5d.4xlarge

db.m6i.largedb.m6i.4xlarge

db.z1d.largedb.z1d.3xlarge

db.t2.smalldb.t2.medium

db.t3.smalldb.t3.2xlarge

db.r3.largedb.r3.2xlarge

db.r4.largedb.r4.2xlarge

db.r5.largedb.r5.4xlarge

db.r5b.largedb.r5b.4xlarge

db.r5d.largedb.r5d.4xlarge

db.r6i.largedb.r6i.4xlarge

db.m3.mediumdb.m3.2xlarge

db.m4.largedb.m4.4xlarge

db.m5.largedb.m5.4xlarge

db.m5d.largedb.m5d.4xlarge

db.m6i.largedb.m6i.4xlarge

Express Edition

db.t3.microdb.t3.xlarge

db.t2.microdb.t2.medium

db.t3.microdb.t3.xlarge

db.t2.microdb.t2.medium

db.t3.microdb.t3.xlarge

Microsoft SQL Server security

The Microsoft SQL Server database engine uses role-based security. The master user name that you specify when you create a DB instance is a SQL Server Authentication login that is a member of the processadmin, public, and setupadmin fixed server roles.

Any user who creates a database is assigned to the db_owner role for that database and has all database-level permissions except for those that are used for backups. Amazon RDS manages backups for you.

The following server-level roles aren't available in Amazon RDS for SQL Server:

  • bulkadmin

  • dbcreator

  • diskadmin

  • securityadmin

  • serveradmin

  • sysadmin

The following server-level permissions aren't available on RDS for SQL Server DB instances:

  • ALTER ANY DATABASE

  • ALTER ANY EVENT NOTIFICATION

  • ALTER RESOURCES

  • ALTER SETTINGS (you can use the DB parameter group API operations to modify parameters; for more information, see Working with parameter groups)

  • AUTHENTICATE SERVER

  • CONTROL_SERVER

  • CREATE DDL EVENT NOTIFICATION

  • CREATE ENDPOINT

  • CREATE SERVER ROLE

  • CREATE TRACE EVENT NOTIFICATION

  • DROP ANY DATABASE

  • EXTERNAL ACCESS ASSEMBLY

  • SHUTDOWN (You can use the RDS reboot option instead)

  • UNSAFE ASSEMBLY

  • ALTER ANY AVAILABILITY GROUP

  • CREATE ANY AVAILABILITY GROUP

Compliance program support for Microsoft SQL Server DB instances

AWS Services in scope have been fully assessed by a third-party auditor and result in a certification, attestation of compliance, or Authority to Operate (ATO). For more information, see AWS services in scope by compliance program.

HIPAA support for Microsoft SQL Server DB instances

You can use Amazon RDS for Microsoft SQL Server databases to build HIPAA-compliant applications. You can store healthcare-related information, including protected health information (PHI), under a Business Associate Agreement (BAA) with AWS. For more information, see HIPAA compliance.

Amazon RDS for SQL Server supports HIPAA for the following versions and editions:

  • SQL Server 2022 Enterprise, Standard, and Web Editions

  • SQL Server 2019 Enterprise, Standard, and Web Editions

  • SQL Server 2017 Enterprise, Standard, and Web Editions

  • SQL Server 2016 Enterprise, Standard, and Web Editions

  • SQL Server 2014 Enterprise, Standard, and Web Editions

To enable HIPAA support on your DB instance, set up the following three components.

Component Details

Auditing

To set up auditing, set the parameter rds.sqlserver_audit to the value fedramp_hipaa. If your DB instance is not already using a custom DB parameter group, you must create a custom parameter group and attach it to your DB instance before you can modify the rds.sqlserver_audit parameter. For more information, see Working with parameter groups.

Transport encryption

To set up transport encryption, force all connections to your DB instance to use Secure Sockets Layer (SSL). For more information, see Forcing connections to your DB instance to use SSL.

Encryption at rest

To set up encryption at rest, you have two options:

  1. If you're running SQL Server 2014–2022 Enterprise Edition or 2022 Standard Edition, you can use Transparent Data Encryption (TDE) to achieve encryption at rest. For more information, see Support for Transparent Data Encryption in SQL Server.

  2. You can set up encryption at rest by using AWS Key Management Service (AWS KMS) encryption keys. For more information, see Encrypting Amazon RDS resources.

SSL support for Microsoft SQL Server DB instances

You can use SSL to encrypt connections between your applications and your Amazon RDS DB instances running Microsoft SQL Server. You can also force all connections to your DB instance to use SSL. If you force connections to use SSL, it happens transparently to the client, and the client doesn't have to do any work to use SSL.

SSL is supported in all AWS Regions and for all supported SQL Server editions. For more information, see Using SSL with a Microsoft SQL Server DB instance.

Microsoft SQL Server versions on Amazon RDS

You can specify any currently supported Microsoft SQL Server version when creating a new DB instance. You can specify the Microsoft SQL Server major version (such as Microsoft SQL Server 14.00), and any supported minor version for the specified major version. If no version is specified, Amazon RDS defaults to a supported version, typically the most recent version. If a major version is specified but a minor version is not, Amazon RDS defaults to a recent release of the major version you have specified.

The following table shows the supported versions for all editions and all AWS Regions, except where noted. You can also use the describe-db-engine-versions AWS CLI command to see a list of supported versions, as well as defaults for newly created DB instances.

SQL Server versions supported in RDS
Major version Minor version RDS API EngineVersion and CLI engine-version
SQL Server 2022

16.00.4095.4 (CU10)

16.00.4085.2 (CU9)

16.00.4095.4.v1

16.00.4085.2.v1

SQL Server 2019

15.00.4345.5 (CU24)

15.00.4335.1 (CU23)

15.00.4322.2 (CU22)

15.00.4316.3 (CU21)

15.00.4312.2 (CU20)

15.00.4236.7 (CU16)

15.00.4198.2 (CU15)

15.00.4153.1 (CU12)

15.00.4073.23 (CU8)

15.00.4043.16 (CU5)

15.00.4345.5.v1

15.00.4335.1.v1

15.00.4322.2.v1

15.00.4316.3.v1

15.00.4312.2.v1

15.00.4236.7.v1

15.00.4198.2.v1

15.00.4153.1.v1

15.00.4073.23.v1

15.00.4043.16.v1

SQL Server 2017

14.00.3465.1 (CU31)

14.00.3460.9 (CU31)

14.00.3451.2 (CU30)

14.00.3421.10 (CU27)

14.00.3401.7 (CU25)

14.00.3381.3 (CU23)

14.00.3356.20 (CU22)

14.00.3294.2 (CU20)

14.00.3281.6 (CU19)

14.00.3465.1.v1

14.00.3460.9.v1

14.00.3451.2.v1

14.00.3421.10.v1

14.00.3401.7.v1

14.00.3381.3.v1

14.00.3356.20.v1

14.00.3294.2.v1

14.00.3281.6.v1

SQL Server 2016

13.00.6435.1 (GDR)

13.00.6430.49 (GDR)

13.00.6419.1 (SP3 + Hotfix)

13.00.6300.2 (SP3)

13.00.6435.1.v1

13.00.6430.49.v1

13.00.6419.1.v1

13.00.6300.2.v1

SQL Server 2014

12.00.6449.1 (SP3 CU4 GDR)

12.00.6444.4 (SP3 CU4 GDR)

12.00.6439.10 (SP3 CU4 SU)

12.00.6433.1 (SP3 CU4 SU)

12.00.6329.1 (SP3 CU4)

12.00.6293.0 (SP3 CU3)

12.00.6449.1.v1

12.00.6444.4.v1

12.00.6439.10.v1

12.00.6433.1.v1

12.00.6329.1.v1

12.00.6293.0.v1

Version management in Amazon RDS

Amazon RDS includes flexible version management that enables you to control when and how your DB instance is patched or upgraded. This enables you to do the following for your DB engine:

  • Maintain compatibility with database engine patch versions.

  • Test new patch versions to verify that they work with your application before you deploy them in production.

  • Plan and perform version upgrades to meet your service level agreements and timing requirements.

Microsoft SQL Server engine patching in Amazon RDS

Amazon RDS periodically aggregates official Microsoft SQL Server database patches into a DB instance engine version that's specific to Amazon RDS. For more information about the Microsoft SQL Server patches in each engine version, see Version and feature support on Amazon RDS.

Currently, you manually perform all engine upgrades on your DB instance. For more information, see Upgrading the Microsoft SQL Server DB engine.

Deprecation schedule for major engine versions of Microsoft SQL Server on Amazon RDS

The following table displays the planned schedule of deprecations for major engine versions of Microsoft SQL Server.

Date Information
July 9, 2024

Microsoft will stop critical patch updates for SQL Server 2014. For more information, see Microsoft SQL Server 2014 in the Microsoft documentation.

June 1, 2024

Amazon RDS plans to end support of Microsoft SQL Server 2014 on RDS for SQL Server. At that time, any remaining instances will be scheduled to migrate to SQL Server 2016 (latest minor version available). For more information, see Announcement: Amazon RDS for SQL Server ending support for SQL Server 2014 major versions.

To avoid an automatic upgrade from Microsoft SQL Server 2014, you can upgrade at a time that is convenient to you. For more information, see Upgrading a DB instance engine version.

July 12, 2022

Microsoft will stop critical patch updates for SQL Server 2012. For more information, see Microsoft SQL Server 2012 in the Microsoft documentation.

June 1, 2022

Amazon RDS plans to end support of Microsoft SQL Server 2012 on RDS for SQL Server. At that time, any remaining instances will be scheduled to migrate to SQL Server 2014 (latest minor version available). For more information, see Announcement: Amazon RDS for SQL Server ending support for SQL Server 2012 major versions.

To avoid an automatic upgrade from Microsoft SQL Server 2012, you can upgrade at a time that is convenient to you. For more information, see Upgrading a DB instance engine version.

September 1, 2021 Amazon RDS is starting to disable the creation of new RDS for SQL Server DB instances using Microsoft SQL Server 2012. For more information, see Announcement: Amazon RDS for SQL Server ending support for SQL Server 2012 major versions.
July 12, 2019

The Amazon RDS team deprecated support for Microsoft SQL Server 2008 R2 in June 2019. Remaining instances of Microsoft SQL Server 2008 R2 are migrating to SQL Server 2012 (latest minor version available).

To avoid an automatic upgrade from Microsoft SQL Server 2008 R2, you can upgrade at a time that is convenient to you. For more information, see Upgrading a DB instance engine version.

April 25, 2019 Before the end of April 2019, you will no longer be able to create new Amazon RDS for SQL Server database instances using Microsoft SQL Server 2008R2.

Microsoft SQL Server features on Amazon RDS

The supported SQL Server versions on Amazon RDS include the following features. In general, a version also includes features from the previous versions, unless otherwise noted in the Microsoft documentation.

Microsoft SQL Server 2022 features

SQL Server 2022 includes many new features, such as the following:

  • Parameter Sensitive Plan Optimization – allows multiple cached plans for a single parameterized statement, potentially reducing issues with parameter sniffing.

  • SQL Server Ledger – provides the ability to cryptographically prove that your data hasn't been altered without authorization.

  • Instant file initialization for transaction log file growth events – results in faster execution of log growth events up to 64MB, including for databases with TDE enabled.

  • System page latch concurrency enhancements – reduces page latch contention while allocating and deallocating data pages and extents, providing significant performance enhancements to tempdb heavy workloads.

For the full list of SQL Server 2022 features, see What's new in SQL Server 2022 (16.x) in the Microsoft documentation.

For a list of unsupported features, see Features not supported and features with limited support.

Microsoft SQL Server 2019 features

SQL Server 2019 includes many new features, such as the following:

  • Accelerated database recovery (ADR) – Reduces crash recovery time after a restart or a long-running transaction rollback.

  • Intelligent Query Processing (IQP):

    • Row mode memory grant feedback – Corrects excessive grants automatically, that would otherwise result in wasted memory and reduced concurrency.

    • Batch mode on rowstore – Enables batch mode execution for analytic workloads without requiring columnstore indexes.

    • Table variable deferred compilation – Improves plan quality and overall performance for queries that reference table variables.

  • Intelligent performance:

    • OPTIMIZE_FOR_SEQUENTIAL_KEY index option – Improves throughput for high-concurrency inserts into indexes.

    • Improved indirect checkpoint scalability – Helps databases with heavy DML workloads.

    • Concurrent Page Free Space (PFS) updates – Enables handling as a shared latch rather than an exclusive latch.

  • Monitoring improvements:

    • WAIT_ON_SYNC_STATISTICS_REFRESH wait type – Shows accumulated instance-level time spent on synchronous statistics refresh operations.

    • Database-scoped configurations – Include LIGHTWEIGHT_QUERY_PROFILING and LAST_QUERY_PLAN_STATS.

    • Dynamic management functions (DMFs) – Include sys.dm_exec_query_plan_stats and sys.dm_db_page_info.

  • Verbose truncation warnings – The data truncation error message defaults to include table and column names and the truncated value.

  • Resumable online index creation – In SQL Server 2017, only resumable online index rebuild is supported.

For the full list of SQL Server 2019 features, see What's new in SQL Server 2019 (15.x) in the Microsoft documentation.

For a list of unsupported features, see Features not supported and features with limited support.

Microsoft SQL Server 2017 features

SQL Server 2017 includes many new features, such as the following:

  • Adaptive query processing

  • Automatic plan correction (an automatic tuning feature)

  • GraphDB

  • Resumable index rebuilds

For the full list of SQL Server 2017 features, see What's new in SQL Server 2017 in the Microsoft documentation.

For a list of unsupported features, see Features not supported and features with limited support.

Microsoft SQL Server 2016 features

Amazon RDS supports the following features of SQL Server 2016:

  • Always Encrypted

  • JSON Support

  • Operational Analytics

  • Query Store

  • Temporal Tables

For the full list of SQL Server 2016 features, see What's new in SQL Server 2016 in the Microsoft documentation.

Microsoft SQL Server 2014 features

In addition to supported features of SQL Server 2012, Amazon RDS supports the new query optimizer available in SQL Server 2014, and also the delayed durability feature.

For a list of unsupported features, see Features not supported and features with limited support.

SQL Server 2014 supports all the parameters from SQL Server 2012 and uses the same default values. SQL Server 2014 includes one new parameter, backup checksum default. For more information, see How to enable the CHECKSUM option if backup utilities do not expose the option in the Microsoft documentation.

Microsoft SQL Server 2012 end of support on Amazon RDS

SQL Server 2012 has reached its end of support on Amazon RDS.

RDS is upgrading all existing DB instances that are still using SQL Server 2012 to the latest minor version of SQL Server 2014. For more information, see Version management in Amazon RDS.

Microsoft SQL Server 2008 R2 end of support on Amazon RDS

SQL Server 2008 R2 has reached its end of support on Amazon RDS.

RDS is upgrading all existing DB instances that are still using SQL Server 2008 R2 to the latest minor version of SQL Server 2012. For more information, see Version management in Amazon RDS.

Change data capture support for Microsoft SQL Server DB instances

Amazon RDS supports change data capture (CDC) for your DB instances running Microsoft SQL Server. CDC captures changes that are made to the data in your tables, and stores metadata about each change that you can access later. For more information, see Change data capture in the Microsoft documentation.

Amazon RDS supports CDC for the following SQL Server editions and versions:

  • Microsoft SQL Server Enterprise Edition (All versions)

  • Microsoft SQL Server Standard Edition:

    • 2022

    • 2019

    • 2017

    • 2016 version 13.00.4422.0 SP1 CU2 and later

To use CDC with your Amazon RDS DB instances, first enable or disable CDC at the database level by using RDS-provided stored procedures. After that, any user that has the db_owner role for that database can use the native Microsoft stored procedures to control CDC on that database. For more information, see Using change data capture.

You can use CDC and AWS Database Migration Service to enable ongoing replication from SQL Server DB instances.

Features not supported and features with limited support

The following Microsoft SQL Server features aren't supported on Amazon RDS:

  • Backing up to Microsoft Azure Blob Storage

  • Buffer pool extension

  • Custom password policies

  • Data Quality Services

  • Database Log Shipping

  • Database snapshots (Amazon RDS supports only DB instance snapshots)

  • Extended stored procedures, including xp_cmdshell

  • FILESTREAM support

  • File tables

  • Machine Learning and R Services (requires OS access to install it)

  • Maintenance plans

  • Performance Data Collector

  • Policy-Based Management

  • PolyBase

  • Replication

  • Resource Governor

  • Server-level triggers

  • Service Broker endpoints

  • Stretch database

  • TRUSTWORTHY database property (requires sysadmin role)

  • T-SQL endpoints (all operations using CREATE ENDPOINT are unavailable)

  • WCF Data Services

The following Microsoft SQL Server features have limited support on Amazon RDS:

The following features aren't supported on Amazon RDS with SQL Server 2022:

  • Suspend database for snapshot

  • External Data Source

  • Backup and restore to S3 compatible object storage

  • Object store integration

  • TLS 1.3 and MS-TDS 8.0

  • Backup compression offloading with QAT

  • SQL Server Analysis Services (SSAS)

  • Database mirroring with Multi-AZ deployments. SQL Server Always On is the only supported method with Multi-AZ deployments.

Multi-AZ deployments using Microsoft SQL Server Database Mirroring or Always On availability groups

Amazon RDS supports Multi-AZ deployments for DB instances running Microsoft SQL Server by using SQL Server Database Mirroring (DBM) or Always On Availability Groups (AGs). Multi-AZ deployments provide increased availability, data durability, and fault tolerance for DB instances. In the event of planned database maintenance or unplanned service disruption, Amazon RDS automatically fails over to the up-to-date secondary replica so database operations can resume quickly without manual intervention. The primary and secondary instances use the same endpoint, whose physical network address transitions to the passive secondary replica as part of the failover process. You don't have to reconfigure your application when a failover occurs.

Amazon RDS manages failover by actively monitoring your Multi-AZ deployment and initiating a failover when a problem with your primary occurs. Failover doesn't occur unless the standby and primary are fully in sync. Amazon RDS actively maintains your Multi-AZ deployment by automatically repairing unhealthy DB instances and re-establishing synchronous replication. You don't have to manage anything. Amazon RDS handles the primary, the witness, and the standby instance for you. When you set up SQL Server Multi-AZ, RDS configures passive secondary instances for all of the databases on the instance.

For more information, see Multi-AZ deployments for Amazon RDS for Microsoft SQL Server.

Using Transparent Data Encryption to encrypt data at rest

Amazon RDS supports Microsoft SQL Server Transparent Data Encryption (TDE), which transparently encrypts stored data. Amazon RDS uses option groups to enable and configure these features. For more information about the TDE option, see Support for Transparent Data Encryption in SQL Server.

Functions and stored procedures for Amazon RDS for Microsoft SQL Server

Following, you can find a list of the Amazon RDS functions and stored procedures that help automate SQL Server tasks.

Task type Procedure or function Where it's used
Administrative tasks

rds_drop_database

Dropping a Microsoft SQL Server database

rds_failover_time

Determining the last failover time

rds_modify_db_name

Renaming a Microsoft SQL Server database in a Multi-AZ deployment

rds_read_error_log

Viewing error and agent logs

rds_set_configuration

This operation is used to set various DB instance configurations:

rds_set_database_online

Transitioning a Microsoft SQL Server database from OFFLINE to ONLINE

rds_set_system_database_sync_objects

rds_fn_get_system_database_sync_objects

rds_fn_server_object_last_sync_time

Turning on SQL Server Agent job replication

rds_show_configuration

To see the values that are set using rds_set_configuration, see these topics:

rds_shrink_tempdbfile

Shrinking the tempdb database
Change data capture (CDC)

rds_cdc_disable_db

Disabling CDC

rds_cdc_enable_db

Enabling CDC
Database Mail

rds_fn_sysmail_allitems

Viewing messages, logs, and attachments

rds_fn_sysmail_event_log

Viewing messages, logs, and attachments

rds_fn_sysmail_mailattachments

Viewing messages, logs, and attachments

rds_sysmail_control

This operation is used in starting and stopping the mail queue:

rds_sysmail_delete_mailitems_sp

Deleting messages
Native backup and restore

rds_backup_database

Backing up a database

rds_cancel_task

Canceling a task

rds_finish_restore

Finishing a database restore

rds_restore_database

Restoring a database

rds_restore_log

Restoring a log
Amazon S3 file transfer

rds_delete_from_filesystem

Deleting files on the RDS DB instance

rds_download_from_s3

Downloading files from an Amazon S3 bucket to a SQL Server DB instance

rds_gather_file_details

Listing files on the RDS DB instance

rds_upload_to_s3

Uploading files from a SQL Server DB instance to an Amazon S3 bucket
Microsoft Distributed Transaction Coordinator (MSDTC)

rds_msdtc_transaction_tracing

Using transaction tracing
SQL Server Audit

rds_fn_get_audit_file

Viewing audit logs
Transparent Data Encryption

rds_backup_tde_certificate

rds_drop_tde_certificate

rds_restore_tde_certificate

rds_fn_list_user_tde_certificates

Support for Transparent Data Encryption in SQL Server
Microsoft Business Intelligence (MSBI)

rds_msbi_task

This operation is used with SQL Server Analysis Services (SSAS):

This operation is also used with SQL Server Integration Services (SSIS):

This operation is also used with SQL Server Reporting Services (SSRS):

rds_fn_task_status

This operation shows the status of MSBI tasks:

SSIS

rds_drop_ssis_database

Dropping the SSISDB database

rds_sqlagent_proxy

Creating an SSIS proxy
SSRS

rds_drop_ssrs_databases

Deleting the SSRS databases

Local time zone for Microsoft SQL Server DB instances

The time zone of an Amazon RDS DB instance running Microsoft SQL Server is set by default. The current default is Coordinated Universal Time (UTC). You can set the time zone of your DB instance to a local time zone instead, to match the time zone of your applications.

You set the time zone when you first create your DB instance. You can create your DB instance by using the AWS Management Console, the Amazon RDS API CreateDBInstance action, or the AWS CLI create-db-instance command.

If your DB instance is part of a Multi-AZ deployment (using SQL Server DBM or AGs), then when you fail over, your time zone remains the local time zone that you set. For more information, see Multi-AZ deployments using Microsoft SQL Server Database Mirroring or Always On availability groups.

When you request a point-in-time restore, you specify the time to restore to. The time is shown in your local time zone. For more information, see Restoring a DB instance to a specified time.

The following are limitations to setting the local time zone on your DB instance:

  • You can't modify the time zone of an existing SQL Server DB instance.

  • You can't restore a snapshot from a DB instance in one time zone to a DB instance in a different time zone.

  • We strongly recommend that you don't restore a backup file from one time zone to a different time zone. If you restore a backup file from one time zone to a different time zone, you must audit your queries and applications for the effects of the time zone change. For more information, see Importing and exporting SQL Server databases using native backup and restore.

Supported time zones

You can set your local time zone to one of the values listed in the following table.

Time zones supported for Amazon RDS on SQL Server

Time zone

Standard time offset

Description

Notes

Afghanistan Standard Time

(UTC+04:30)

Kabul

This time zone doesn't observe daylight saving time.

Alaskan Standard Time

(UTC–09:00)

Alaska

Aleutian Standard Time

(UTC–10:00)

Aleutian Islands

Altai Standard Time

(UTC+07:00)

Barnaul, Gorno-Altaysk

Arab Standard Time

(UTC+03:00)

Kuwait, Riyadh

This time zone doesn't observe daylight saving time.

Arabian Standard Time

(UTC+04:00)

Abu Dhabi, Muscat

Arabic Standard Time

(UTC+03:00)

Baghdad

This time zone doesn't observe daylight saving time.

Argentina Standard Time

(UTC–03:00)

City of Buenos Aires

This time zone doesn't observe daylight saving time.

Astrakhan Standard Time

(UTC+04:00)

Astrakhan, Ulyanovsk

Atlantic Standard Time

(UTC–04:00)

Atlantic Time (Canada)

AUS Central Standard Time

(UTC+09:30)

Darwin

This time zone doesn't observe daylight saving time.

Aus Central W. Standard Time

(UTC+08:45)

Eucla

AUS Eastern Standard Time

(UTC+10:00)

Canberra, Melbourne, Sydney

Azerbaijan Standard Time

(UTC+04:00)

Baku

Azores Standard Time

(UTC–01:00)

Azores

Bahia Standard Time

(UTC–03:00)

Salvador

Bangladesh Standard Time

(UTC+06:00)

Dhaka

This time zone doesn't observe daylight saving time.

Belarus Standard Time

(UTC+03:00)

Minsk

This time zone doesn't observe daylight saving time.

Bougainville Standard Time

(UTC+11:00)

Bougainville Island

Canada Central Standard Time

(UTC–06:00)

Saskatchewan

This time zone doesn't observe daylight saving time.

Cape Verde Standard Time

(UTC–01:00)

Cabo Verde Is.

This time zone doesn't observe daylight saving time.

Caucasus Standard Time

(UTC+04:00)

Yerevan

Cen. Australia Standard Time

(UTC+09:30)

Adelaide

Central America Standard Time

(UTC–06:00)

Central America

This time zone doesn't observe daylight saving time.

Central Asia Standard Time

(UTC+06:00)

Astana

This time zone doesn't observe daylight saving time.

Central Brazilian Standard Time

(UTC–04:00)

Cuiaba

Central Europe Standard Time

(UTC+01:00)

Belgrade, Bratislava, Budapest, Ljubljana, Prague

Central European Standard Time

(UTC+01:00)

Sarajevo, Skopje, Warsaw, Zagreb

Central Pacific Standard Time

(UTC+11:00)

Solomon Islands, New Caledonia

This time zone doesn't observe daylight saving time.

Central Standard Time

(UTC–06:00)

Central Time (US and Canada)

Central Standard Time (Mexico)

(UTC–06:00)

Guadalajara, Mexico City, Monterrey

Chatham Islands Standard Time

(UTC+12:45)

Chatham Islands

China Standard Time

(UTC+08:00)

Beijing, Chongqing, Hong Kong, Urumqi

This time zone doesn't observe daylight saving time.

Cuba Standard Time

(UTC–05:00)

Havana

Dateline Standard Time

(UTC–12:00)

International Date Line West

This time zone doesn't observe daylight saving time.

E. Africa Standard Time

(UTC+03:00)

Nairobi

This time zone doesn't observe daylight saving time.

E. Australia Standard Time

(UTC+10:00)

Brisbane

This time zone doesn't observe daylight saving time.

E. Europe Standard Time

(UTC+02:00)

Chisinau

E. South America Standard Time

(UTC–03:00)

Brasilia

Easter Island Standard Time

(UTC–06:00)

Easter Island

Eastern Standard Time

(UTC–05:00)

Eastern Time (US and Canada)

Eastern Standard Time (Mexico)

(UTC–05:00)

Chetumal

Egypt Standard Time

(UTC+02:00)

Cairo

Ekaterinburg Standard Time

(UTC+05:00)

Ekaterinburg

Fiji Standard Time

(UTC+12:00)

Fiji

FLE Standard Time

(UTC+02:00)

Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius

Georgian Standard Time

(UTC+04:00)

Tbilisi

This time zone doesn't observe daylight saving time.

GMT Standard Time

(UTC)

Dublin, Edinburgh, Lisbon, London

This time zone isn't the same as Greenwich Mean Time. This time zone does observe daylight saving time.

Greenland Standard Time

(UTC–03:00)

Greenland

Greenwich Standard Time

(UTC)

Monrovia, Reykjavik

This time zone doesn't observe daylight saving time.

GTB Standard Time

(UTC+02:00)

Athens, Bucharest

Haiti Standard Time

(UTC–05:00)

Haiti

Hawaiian Standard Time

(UTC–10:00)

Hawaii

India Standard Time

(UTC+05:30)

Chennai, Kolkata, Mumbai, New Delhi

This time zone doesn't observe daylight saving time.

Iran Standard Time

(UTC+03:30)

Tehran

Israel Standard Time

(UTC+02:00)

Jerusalem

Jordan Standard Time

(UTC+02:00)

Amman

Kaliningrad Standard Time

(UTC+02:00)

Kaliningrad

Kamchatka Standard Time

(UTC+12:00)

Petropavlovsk-Kamchatsky – Old

Korea Standard Time

(UTC+09:00)

Seoul

This time zone doesn't observe daylight saving time.

Libya Standard Time

(UTC+02:00)

Tripoli

Line Islands Standard Time

(UTC+14:00)

Kiritimati Island

Lord Howe Standard Time

(UTC+10:30)

Lord Howe Island

Magadan Standard Time

(UTC+11:00)

Magadan

This time zone doesn't observe daylight saving time.

Magallanes Standard Time

(UTC–03:00)

Punta Arenas

Marquesas Standard Time

(UTC–09:30)

Marquesas Islands

Mauritius Standard Time

(UTC+04:00)

Port Louis

This time zone doesn't observe daylight saving time.

Middle East Standard Time

(UTC+02:00)

Beirut

Montevideo Standard Time

(UTC–03:00)

Montevideo

Morocco Standard Time

(UTC+01:00)

Casablanca

Mountain Standard Time

(UTC–07:00)

Mountain Time (US and Canada)

Mountain Standard Time (Mexico)

(UTC–07:00)

Chihuahua, La Paz, Mazatlan

Myanmar Standard Time

(UTC+06:30)

Yangon (Rangoon)

This time zone doesn't observe daylight saving time.

N. Central Asia Standard Time

(UTC+07:00)

Novosibirsk

Namibia Standard Time

(UTC+02:00)

Windhoek

Nepal Standard Time

(UTC+05:45)

Kathmandu

This time zone doesn't observe daylight saving time.

New Zealand Standard Time

(UTC+12:00)

Auckland, Wellington

Newfoundland Standard Time

(UTC–03:30)

Newfoundland

Norfolk Standard Time

(UTC+11:00)

Norfolk Island

North Asia East Standard Time

(UTC+08:00)

Irkutsk

North Asia Standard Time

(UTC+07:00)

Krasnoyarsk

North Korea Standard Time

(UTC+09:00)

Pyongyang

Omsk Standard Time

(UTC+06:00)

Omsk

Pacific SA Standard Time

(UTC–03:00)

Santiago

Pacific Standard Time

(UTC–08:00)

Pacific Time (US and Canada)

Pacific Standard Time (Mexico)

(UTC–08:00)

Baja California

Pakistan Standard Time

(UTC+05:00)

Islamabad, Karachi

This time zone doesn't observe daylight saving time.

Paraguay Standard Time

(UTC–04:00)

Asuncion

Romance Standard Time

(UTC+01:00)

Brussels, Copenhagen, Madrid, Paris

Russia Time Zone 10

(UTC+11:00)

Chokurdakh

Russia Time Zone 11

(UTC+12:00)

Anadyr, Petropavlovsk-Kamchatsky

Russia Time Zone 3

(UTC+04:00)

Izhevsk, Samara

Russian Standard Time

(UTC+03:00)

Moscow, St. Petersburg, Volgograd

This time zone doesn't observe daylight saving time.

SA Eastern Standard Time

(UTC–03:00)

Cayenne, Fortaleza

This time zone doesn't observe daylight saving time.

SA Pacific Standard Time

(UTC–05:00)

Bogota, Lima, Quito, Rio Branco

This time zone doesn't observe daylight saving time.

SA Western Standard Time

(UTC–04:00)

Georgetown, La Paz, Manaus, San Juan

This time zone doesn't observe daylight saving time.

Saint Pierre Standard Time

(UTC–03:00)

Saint Pierre and Miquelon

Sakhalin Standard Time

(UTC+11:00)

Sakhalin

Samoa Standard Time

(UTC+13:00)

Samoa

Sao Tome Standard Time

(UTC+01:00)

Sao Tome

Saratov Standard Time

(UTC+04:00)

Saratov

SE Asia Standard Time

(UTC+07:00)

Bangkok, Hanoi, Jakarta

This time zone doesn't observe daylight saving time.

Singapore Standard Time

(UTC+08:00)

Kuala Lumpur, Singapore

This time zone doesn't observe daylight saving time.

South Africa Standard Time

(UTC+02:00)

Harare, Pretoria

This time zone doesn't observe daylight saving time.

Sri Lanka Standard Time

(UTC+05:30)

Sri Jayawardenepura

This time zone doesn't observe daylight saving time.

Sudan Standard Time

(UTC+02:00)

Khartoum

Syria Standard Time

(UTC+02:00)

Damascus

Taipei Standard Time

(UTC+08:00)

Taipei

This time zone doesn't observe daylight saving time.

Tasmania Standard Time

(UTC+10:00)

Hobart

Tocantins Standard Time

(UTC–03:00)

Araguaina

Tokyo Standard Time

(UTC+09:00)

Osaka, Sapporo, Tokyo

This time zone doesn't observe daylight saving time.

Tomsk Standard Time

(UTC+07:00)

Tomsk

Tonga Standard Time

(UTC+13:00)

Nuku'alofa

This time zone doesn't observe daylight saving time.

Transbaikal Standard Time

(UTC+09:00)

Chita

Turkey Standard Time

(UTC+03:00)

Istanbul

Turks And Caicos Standard Time

(UTC–05:00)

Turks and Caicos

Ulaanbaatar Standard Time

(UTC+08:00)

Ulaanbaatar

This time zone doesn't observe daylight saving time.

US Eastern Standard Time

(UTC–05:00)

Indiana (East)

US Mountain Standard Time

(UTC–07:00)

Arizona

This time zone doesn't observe daylight saving time.

UTC

UTC

Coordinated Universal Time

This time zone doesn't observe daylight saving time.

UTC–02

(UTC–02:00)

Coordinated Universal Time–02

This time zone doesn't observe daylight saving time.

UTC–08

(UTC–08:00)

Coordinated Universal Time–08

UTC–09

(UTC–09:00)

Coordinated Universal Time–09

UTC–11

(UTC–11:00)

Coordinated Universal Time–11

This time zone doesn't observe daylight saving time.

UTC+12

(UTC+12:00)

Coordinated Universal Time+12

This time zone doesn't observe daylight saving time.

UTC+13

(UTC+13:00)

Coordinated Universal Time+13

Venezuela Standard Time

(UTC–04:00)

Caracas

This time zone doesn't observe daylight saving time.

Vladivostok Standard Time

(UTC+10:00)

Vladivostok

Volgograd Standard Time

(UTC+04:00)

Volgograd

W. Australia Standard Time

(UTC+08:00)

Perth

This time zone doesn't observe daylight saving time.

W. Central Africa Standard Time

(UTC+01:00)

West Central Africa

This time zone doesn't observe daylight saving time.

W. Europe Standard Time

(UTC+01:00)

Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna

W. Mongolia Standard Time

(UTC+07:00)

Hovd

West Asia Standard Time

(UTC+05:00)

Ashgabat, Tashkent

This time zone doesn't observe daylight saving time.

West Bank Standard Time

(UTC+02:00)

Gaza, Hebron

West Pacific Standard Time

(UTC+10:00)

Guam, Port Moresby

This time zone doesn't observe daylight saving time.

Yakutsk Standard Time

(UTC+09:00)

Yakutsk