<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Azure SQL Blog articles</title>
    <link>https://techcommunity.microsoft.com/t5/azure-sql-blog/bg-p/AzureSQLBlog</link>
    <description>Azure SQL Blog articles</description>
    <pubDate>Mon, 09 Mar 2026 03:40:55 GMT</pubDate>
    <dc:creator>AzureSQLBlog</dc:creator>
    <dc:date>2026-03-09T03:40:55Z</dc:date>
    <item>
      <title>Managed Identity Support for Azure SQL Database Import &amp; Export services (preview)</title>
      <link>https://techcommunity.microsoft.com/t5/azure-sql-blog/managed-identity-support-for-azure-sql-database-import-export/ba-p/4498732</link>
      <description>&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Today&amp;nbsp;we’re&amp;nbsp;announcing&amp;nbsp;a&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;public preview&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;that lets Azure SQL Database Import&amp;nbsp;&amp;amp;&amp;nbsp;Export&amp;nbsp;services&amp;nbsp;authenticate with&amp;nbsp;user-assigned&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;managed identity&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.&amp;nbsp;Now Azure SQL Databases can perform import and export operations with no passwords, storage&amp;nbsp;keys&amp;nbsp;or SAS tokens.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;201341983&amp;quot;:0,&amp;quot;335551550&amp;quot;:1,&amp;quot;335551620&amp;quot;:1,&amp;quot;335559685&amp;quot;:0,&amp;quot;335559737&amp;quot;:0,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;With this preview, customers can choose to use either a single user-assigned managed identity (UAMI) for both SQL and Storage permissions or assign separate UAMIs, one for the Azure SQL logical server and another for the Storage account, for full separation of duties.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;201341983&amp;quot;:0,&amp;quot;335551550&amp;quot;:1,&amp;quot;335551620&amp;quot;:1,&amp;quot;335559685&amp;quot;:0,&amp;quot;335559737&amp;quot;:0,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:279}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;At a glance:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Run Import/Export using a&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;user-assigned managed identity (UAMI).&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Use one identity for both SQL and Storage, or split them if you prefer tighter scoping.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Works in the portal, REST, Azure CLI, and PowerShell.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P aria-level="2"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P aria-level="2"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Why &lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;this matters:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Managed identity support makes SQL migrations simpler and safer, no passwords, storage keys, or SAS tokens. By leveraging managed identity when integrating Import/Export into a pipeline, you streamline access management and enhance security: permissions are granted directly to the identity, reducing manual credential handling and the risk of exposing sensitive information. This keeps operations efficient and secure, without secrets embedded in scripts&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;You’ve&amp;nbsp;got two straightforward options:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;One UAMI for everything&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;(simplest setup).&lt;/SPAN&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;Two UAMIs, &lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;one for SQL and one for Storage, recommended if you wish to maintain more strictly defined permissions.&lt;/SPAN&gt;&amp;nbsp;&lt;BR /&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P aria-level="2"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Getting started:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;201341983&amp;quot;:0,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Create a user-assigned managed identity (UAMI)&lt;/SPAN&gt;&amp;nbsp;&lt;BR /&gt;&lt;SPAN data-contrast="auto"&gt;Decide up front whether you want one identity end-to-end, or two identities (SQL vs Storage) for separation of duties.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Attach the UAMI to the Azure SQL logical server&lt;/SPAN&gt;&amp;nbsp;&lt;BR /&gt;&lt;SPAN data-contrast="auto"&gt;On the server&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Identity&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;blade, add the UAMI so the Import/Export job can run as that identity.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Set the server’s Microsoft Entra ID admin to the UAMI&lt;/SPAN&gt;&amp;nbsp;&lt;BR /&gt;&lt;SPAN data-contrast="auto"&gt;In&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Microsoft Entra ID&amp;nbsp;&amp;gt;&amp;nbsp;Set admin,&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;select the UAMI. This is what lets the workflow authenticate to SQL without a password.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="4" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Grant Storage access&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN data-contrast="auto"&gt;Use&amp;nbsp;Storage Blob Data Reader&amp;nbsp;for import and&amp;nbsp;Storage Blob Data Contributor&amp;nbsp;for export, assigned in&amp;nbsp;Access control (IAM). If you can, scope the assignment to the container that holds the&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.bacpac&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="5" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Pass resource IDs (not names) in your calls&lt;/SPAN&gt;&amp;nbsp;&lt;BR /&gt;
&lt;P&gt;In REST/CLI/PowerShell, you pass the UAMI&amp;nbsp;&lt;STRONG&gt;resource ID&lt;/STRONG&gt; as the value of &lt;EM&gt;administratorLogin&lt;/EM&gt; (SQL identity) and &lt;EM&gt;storageKey&lt;/EM&gt; (Storage identity), and set &lt;EM&gt;authenticationType&lt;/EM&gt; / &lt;EM&gt;storageKeyType&lt;/EM&gt; to &lt;EM&gt;ManagedIdentity&lt;/EM&gt;.&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="5" data-aria-level="1"&gt;
&lt;P&gt;&lt;EM&gt;administratorLogin → UAMI resource ID used for SQL auth&lt;/EM&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI style="font-style: italic;" aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="5" data-aria-level="1"&gt;
&lt;P&gt;&lt;EM&gt;storageKey → UAMI resource ID used for Storage &lt;/EM&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI style="font-style: italic;" aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="5" data-aria-level="1"&gt;
&lt;P&gt;&lt;EM&gt;authauthenticationType / storageKeyType → ManagedIdentity&lt;/EM&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="6" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Run the import/export job&lt;/SPAN&gt;&amp;nbsp;&lt;BR /&gt;&lt;SPAN data-contrast="auto"&gt;Kick it off from the portal, REST, Azure CLI, or PowerShell. From there, the service uses the identity you selected to reach both SQL and Storage.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P aria-level="3"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;Portal experience&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;In the Azure portal, you can choose&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Authentication type&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;=&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Managed identity&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;and select the user-assigned managed identity to use for the operation.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Figure 1: Azure portal Import/Export experience with Managed identity authentication selected.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;Notes&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;201341983&amp;quot;:0,&amp;quot;335559738&amp;quot;:160,&amp;quot;335559739&amp;quot;:80,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;This preview supports&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;user-assigned&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;managed identities (UAMIs).&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;For least privilege, scope Storage roles to the specific container used for the&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;.bacpac&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; file and use two user-assigned managed identities (UAMIs), one for SQL and one for the storage.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P aria-level="3"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;Sample 1: REST API — Export using one UAMI:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;$exportBody = "{
`n  `"storageKeyType`": `"ManagedIdentity`",
`n  `"storageKey`": `"${managedIdentityServerResourceId}`",
`n  `"storageUri`": `"${storageUri}`",
`n  `"administratorLogin`": `"${managedIdentityServerResourceId}`",
`n  `"authenticationType`": `"ManagedIdentity`"
`n}"

$export = Invoke-AzRestMethod -Method POST -Path "/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.Sql/servers/${serverName}/databases/${databaseName}/export?api-version=2024-05-01-preview" -Payload $exportBody

# Poll operation status
Invoke-AzRestMethod -Method GET $export.Headers.Location.AbsoluteUri&lt;/LI-CODE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;Sample 2: REST API — Import to a new server using &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;one UAMI:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;$serverName = "sql-mi-demo-target"
$databaseName = "sqldb-mi-demo-target"

# Same UAMI for SQL auth + Storage access
$importBody = "{
`n  `"operationMode`": `"Import`",
`n  `"administratorLogin`": `"${managedIdentityServerResourceId}`",
`n  `"authenticationType`": `"ManagedIdentity`",
`n  `"storageKeyType`": `"ManagedIdentity`",
`n  `"storageKey`": `"${managedIdentityServerResourceId}`",
`n  `"storageUri`": `"${storageUri}`",
`n  `"databaseName`": `"${databaseName}`"
`n}"

$import = Invoke-AzRestMethod -Method POST -Path "/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.Sql/servers/${serverName}/databases/${databaseName}/import?api-version=2024-05-01-preview" -Payload $importBody

# Poll operation status
Invoke-AzRestMethod -Method GET $import.Headers.Location.AbsoluteUri&lt;/LI-CODE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;Sample 3: PowerShell — Export using two UAMIs:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;# Server UAMI for SQL auth, Storage UAMI for storage access
New-AzSqlDatabaseExport -ResourceGroupName $resourceGroupName -DatabaseName $databaseName -ServerName $serverName -StorageKeyType ManagedIdentity -StorageKey $managedIdentityStorageResourceId -StorageUri $storageUri -AuthenticationType ManagedIdentity -AdministratorLogin $managedIdentityServerResourceId&lt;/LI-CODE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;Sample 4: PowerShell — Import to a new server using two UAMIs:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;New-AzSqlDatabaseImport -ResourceGroupName $resourceGroupName -DatabaseName $databaseName -ServerName $serverName -DatabaseMaxSizeBytes $databaseSizeInBytes -StorageKeyType "ManagedIdentity" -StorageKey $managedIdentityStorageResourceId -StorageUri $storageUri -Edition $edition -ServiceObjectiveName $serviceObjectiveName -AdministratorLogin $managedIdentityServerResourceId -AuthenticationType ManagedIdentity&lt;/LI-CODE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;Sample 5: Azure CLI — Export using two UAMIs:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;az sql db export -s $serverName -n $databaseName -g $resourceGroupName --auth-type ManagedIdentity -u $managedIdentityServerResourceId --storage-key $managedIdentityStorageResourceId --storage-key-type ManagedIdentity --storage-uri $storageUri&lt;/LI-CODE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 3"&gt;Sample 6: Azure CLI — Import to a new server using two UAMIs:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;az sql db import -s $serverName -n $databaseName -g $resourceGroupName --auth-type ManagedIdentity -u $managedIdentityServerResourceId --storage-key $managedIdentityStorageResourceId --storage-key-type ManagedIdentity --storage-uri $storageUrib&lt;/LI-CODE&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;For more information and samples, please check &lt;/SPAN&gt;&lt;A href="https://aka.ms/importMIpupr" target="_blank" rel="noopener"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;Tutorial: Use managed identity with Azure SQL import and export (preview)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 03 Mar 2026 18:05:24 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-sql-blog/managed-identity-support-for-azure-sql-database-import-export/ba-p/4498732</guid>
      <dc:creator>HugoQueiroz_MSFT</dc:creator>
      <dc:date>2026-03-03T18:05:24Z</dc:date>
    </item>
    <item>
      <title>GA of update policy SQL Server 2025 for Azure SQL Managed Instance</title>
      <link>https://techcommunity.microsoft.com/t5/azure-sql-blog/ga-of-update-policy-sql-server-2025-for-azure-sql-managed/ba-p/4498802</link>
      <description>&lt;P&gt;We’re happy to announce that the update policy&amp;nbsp;&lt;EM&gt;SQL Server 2025&lt;/EM&gt;&amp;nbsp;for Azure SQL Managed Instance is now generally available (GA). &lt;EM&gt;SQL Server 2025&lt;/EM&gt;&amp;nbsp;update policy contains all the latest SQL engine innovation while retaining database portability to the recent major release of SQL Server.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://aka.ms/sqlmiupdatepolicydocs" target="_blank" rel="noopener"&gt;Update policy&lt;/A&gt;&amp;nbsp;is an instance configuration option that provides flexibility and allows you to choose between instant access to the latest SQL engine features and fixed SQL engine feature set corresponding to 2022 and 2025 major releases of SQL Server. Regardless of the update policy chosen, you continue to benefit from Azure SQL platform innovation. New features and capabilities not related to the SQL engine – everything that makes Azure SQL Managed Instance a true PaaS service – are successively delivered to your Azure SQL Managed Instance resources.&lt;/P&gt;
&lt;H2&gt;What’s new in SQL Server 2025 update policy&lt;/H2&gt;
&lt;P&gt;In short, instances with update policy&amp;nbsp;&lt;EM&gt;SQL Server 2025&lt;/EM&gt;&amp;nbsp;benefit from all the SQL engine features that were gradually added to the&amp;nbsp;&lt;EM&gt;Always-up-to-date&lt;/EM&gt;&amp;nbsp;policy over the past few years and are not available in the&amp;nbsp;&lt;EM&gt;SQL Server 2022&lt;/EM&gt;&amp;nbsp;update policy. Let’s name few most notable features, with complete list available in the&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/update-policy?view=azuresql&amp;amp;tabs=azure-portal#feature-comparison" target="_blank" rel="noopener"&gt;update policy documentation&lt;/A&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/sql/relational-databases/performance/optimized-locking" target="_blank" rel="noopener"&gt;Optimized locking&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/fabric/mirroring/azure-sql-managed-instance" target="_blank" rel="noopener"&gt;Mirroring in Fabric&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/sql/relational-databases/regular-expressions/overview" target="_blank" rel="noopener"&gt;Regular expression functions&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/sql/t-sql/data-types/vector-data-type" target="_blank" rel="noopener"&gt;Vector data type&lt;/A&gt;&amp;nbsp;and&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/sql/t-sql/functions/vector-functions-transact-sql" target="_blank" rel="noopener"&gt;functions&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/sql/t-sql/data-types/json-data-type" target="_blank" rel="noopener"&gt;JSON data type&lt;/A&gt;&amp;nbsp;and&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/sql/t-sql/functions/json-arrayagg-transact-sql" target="_blank" rel="noopener"&gt;aggregate functions&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-invoke-external-rest-endpoint-transact-sql" target="_blank" rel="noopener"&gt;Invoking HTTP REST endpoints&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/sql/relational-databases/backup-restore/copy-only-backups-sql-server" target="_blank" rel="noopener"&gt;Manual (copy-only) backup to immutable Azure Blob Storage&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/azuresqlblog/stream-data-in-near-real-time-from-sql-to-azure-event-hubs---public-preview/4470724" target="_blank" rel="noopener" data-lia-auto-title="Change Event Streaming (private preview)" data-lia-auto-title-active="0"&gt;Change Event Streaming (private preview)&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Update policy for each modernization strategy&lt;/H2&gt;
&lt;P&gt;&lt;EM&gt;Always-up-to-date&lt;/EM&gt;&amp;nbsp;is a “perpetual” update policy. It has no end of lifetime and brings new SQL engine features to instances as soon as they are available in Azure. It enables you to always be at the forefront - to quickly adopt new yet production-ready SQL engine features, benefit from them in everyday operations and keep a competitive edge without waiting for the next major release of SQL Server.&lt;/P&gt;
&lt;P&gt;In contrast, update policies&amp;nbsp;&lt;EM&gt;SQL Server 2025&lt;/EM&gt;&amp;nbsp;and&amp;nbsp;&lt;EM&gt;SQL Server 2022&lt;/EM&gt;&amp;nbsp;contain fixed sets of SQL engine features corresponding to the respective releases of SQL Server. They’re optimized to fulfill regulatory compliance, contractual, or other requirements for database/workload portability from managed instance to SQL Server. Over time, they get security patches, fixes, and incremental functional improvements in form of Cumulative Updates, but not new SQL engine features. They also have limited lifetime, aligned with the period of mainstream support of SQL Server releases. As the end of mainstream support for the update policy approaches, you should upgrade instances to a newer policy. Instances will be &lt;STRONG&gt;automatically upgraded&lt;/STRONG&gt; to the next more recent update policy at the end of mainstream support of their existing update policy.&lt;/P&gt;
&lt;H2&gt;Best practices with the Update policy feature&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Plan for the&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/lifecycle/products/azure-sql-managed-instance" target="_blank" rel="noopener"&gt;end of lifetime&lt;/A&gt;&amp;nbsp;of&amp;nbsp;&lt;EM&gt;SQL Server 2022&lt;/EM&gt;&amp;nbsp;update policy if you’re using it today, and upgrade to a newer policy on your terms before automatic upgrade kicks in. Choose between &lt;EM&gt;Always-up-to-date&lt;/EM&gt; and SQL Server 2025&amp;nbsp;update policy.&lt;/LI&gt;
&lt;LI&gt;Make sure to add update policy configuration to your&amp;nbsp;&lt;STRONG&gt;deployment templates and scripts&lt;/STRONG&gt;, so that you don’t rely on service defaults that may change in the future.&lt;/LI&gt;
&lt;LI&gt;Be aware that using some of the newly introduced features may require changing the&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/sql/relational-databases/databases/view-or-change-the-compatibility-level-of-a-database" target="_blank" rel="noopener"&gt;database compatibility level&lt;/A&gt;. Consult feature documentation for details.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;What’s coming next&lt;/H2&gt;
&lt;P&gt;&lt;EM&gt;SQL Server 2025&lt;/EM&gt; will become the default update policy in Azure portal during March 2026.&lt;/P&gt;
&lt;P&gt;Future versions of REST API, PowerShell and CLI will also have the default value changed to &lt;EM&gt;SQL Server 2025 &lt;/EM&gt;for the „database format“ parameter which corresponds to the instance’s update policy.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;SQL Server 2022 &lt;/EM&gt;policy will reach end of lifetime on January 11, 2028 when the &lt;A href="https://learn.microsoft.com/en-us/lifecycle/products/sql-server-2022" target="_blank" rel="noopener"&gt;mainstream support for SQL Server 2022&lt;/A&gt; ends. Plan timely and change the update policy of your instances before that date.&lt;/P&gt;
&lt;img&gt;Update policy transitions&lt;/img&gt;
&lt;H2&gt;Summary&lt;/H2&gt;
&lt;P&gt;Update policy&amp;nbsp;&lt;EM&gt;SQL Server 2025 &lt;/EM&gt;for Azure SQL Managed Instance is now&lt;EM&gt; &lt;/EM&gt;&lt;STRONG&gt;generally available&lt;/STRONG&gt;. It brings the same set of SQL engine features that exist in the new SQL Server 2025. Consider it if you have regulatory compliance, contractual, or other reasons for database/workload portability from Azure SQL Managed Instance to SQL Server 2025. Otherwise, use the &lt;EM&gt;Always-up-to-date&lt;/EM&gt; policy which always provides the latest features and benefits available to Azure SQL Managed Instance.&lt;/P&gt;
&lt;P&gt;If your instances are currently configured with &lt;EM&gt;SQL Server 2022&lt;/EM&gt; update policy, &lt;STRONG&gt;update them to a newer policy&lt;/STRONG&gt; before the end of mainstream support.&lt;/P&gt;
&lt;P&gt;For more details visit&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/update-policy?view=azuresql&amp;amp;tabs=azure-portal" target="_blank" rel="noopener"&gt;Update policy documentation&lt;/A&gt;. To stay up to date with the latest feature additions to Azure SQL Managed Instance, subscribe to the&amp;nbsp;&lt;A href="https://www.youtube.com/@AzureSQL" target="_blank" rel="noopener"&gt;Azure SQL video channel&lt;/A&gt;, subscribe to the&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/t5/azure-sql-blog/bg-p/AzureSQLBlog" target="_blank" rel="noopener"&gt;Azure SQL Blog&lt;/A&gt;&amp;nbsp;feed, or bookmark&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/doc-changes-updates-release-notes-whats-new" target="_blank" rel="noopener"&gt;What’s new in Azure SQL Managed Instance&lt;/A&gt; article with regular updates.&lt;/P&gt;</description>
      <pubDate>Tue, 03 Mar 2026 00:22:29 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-sql-blog/ga-of-update-policy-sql-server-2025-for-azure-sql-managed/ba-p/4498802</guid>
      <dc:creator>Mladen_Andzic</dc:creator>
      <dc:date>2026-03-03T00:22:29Z</dc:date>
    </item>
    <item>
      <title>Why Developers and DBAs love SQL’s Dynamic Data Masking (Series-Part 1)</title>
      <link>https://techcommunity.microsoft.com/t5/azure-sql-blog/why-developers-and-dbas-love-sql-s-dynamic-data-masking-series/ba-p/4498450</link>
      <description>&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Dynamic Data Masking (DDM) is one of those SQL features (available in SQL Server, Azure SQL DB, Azure SQL MI, SQL Database in Microsoft Fabric) that both developers and DBAs can rally behind. Why? Because it delivers a simple, built-in way to protect sensitive data—like phone numbers, emails, or IDs—without rewriting application logic or duplicating security rules across layers. With just a single line of T-SQL, you can configure masking directly at the column level, ensuring that non-privileged users see only obfuscated values while privileged users retain full access. This not only streamlines development but also supports compliance with data privacy regulations like GDPR and HIPAA, etc. by minimizing exposure to personally identifiable information (PII).&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;In this first post of our DDM series, we’ll walk through a real-world scenario using the default masking function to show how easy it is to implement and how much development effort it can save.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:0,&amp;quot;335559740&amp;quot;:300}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Scenario: Hiding customer phone numbers from support queries&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Imagine you have a support application where agents can look up customer profiles. They need to&amp;nbsp;know if&amp;nbsp;a phone number exists for the&amp;nbsp;customer but&amp;nbsp;shouldn’t&amp;nbsp;see the actual digits for privacy. In a traditional approach, a developer might implement custom logic in the app (or a SQL view) to replace phone numbers with placeholders like “XXXX” for non-privileged users. This adds complexity and duplicate logic across the app.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;With DDM’s default masking, the database can handle this automatically.&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;By applying a mask to the phone number column, any query by a non-privileged user will return a generic masked value (e.g.&amp;nbsp;“XXXX”) instead of the real number. The support agent gets the information they need (that a number is on file) without revealing the actual phone number, and the developer writes&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;zero&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;masking code in the app.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;This not only simplifies the application codebase but also ensures consistent data protection across all query access paths. As Microsoft’s documentation puts it, DDM lets you control how much sensitive data to reveal&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;“with minimal effect on the application layer”&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;– exactly what our scenario achieves.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Using the ‘Default’ Mask in T-SQL :&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The ‘Default’ masking function is the simplest mask: it fully replaces the actual value with a fixed default based on data type. For text data, that default is XXXX.&amp;nbsp;Let’s&amp;nbsp;apply this to our phone&amp;nbsp;number&amp;nbsp;example. The&amp;nbsp;following T-SQL snippet&amp;nbsp;works in Azure SQL Database, Azure SQL&amp;nbsp;MI&amp;nbsp;and SQL Server:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;SQL&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;-- Step 1: Create the table with a default mask on the Phone column&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;CREATE TABLE&amp;nbsp;SupportCustomers&amp;nbsp;(&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;   &amp;nbsp;CustomerID   INT PRIMARY KEY,&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;    Name        &amp;nbsp;NVARCHAR(100),&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;    Phone       &amp;nbsp;NVARCHAR(15) MASKED WITH (FUNCTION = 'default()')  --&amp;nbsp;Apply default masking&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;);&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;GO&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;-- Step 2: Insert sample data&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;INSERT INTO&amp;nbsp;SupportCustomers&amp;nbsp;(CustomerID, Name, Phone)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;VALUES (1, 'Alice Johnson', '222-555-1234');&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;GO&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;-- Step 3: Create a non-privileged user (no login for simplicity)&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;CREATE USER&amp;nbsp;SupportAgent&amp;nbsp;WITHOUT LOGIN;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;GO&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;-- Step 4: Grant SELECT permission on the table to the user&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;GRANT SELECT ON&amp;nbsp;SupportCustomers&amp;nbsp;TO&amp;nbsp;SupportAgent;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;GO&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;-- Step 5: Execute a SELECT as the non-privileged user&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;EXECUTE AS USER = 'SupportAgent';&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;SPAN data-contrast="auto"&gt;SELECT Name, Phone FROM&amp;nbsp;SupportCustomers&amp;nbsp;WHERE&amp;nbsp;CustomerID&amp;nbsp;= 1&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Alternatively, you can use Azure Portal to configure masking as shown in the following screenshot:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Expected result:&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;The query above would return Alice’s name and a masked phone number. Instead of seeing&amp;nbsp;222-555-1234, the Phone column would show XXXX. Alice’s actual number&amp;nbsp;remains&amp;nbsp;safely stored in the database, but&amp;nbsp;it’s&amp;nbsp;dynamically obscured for the support agent’s query.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Meanwhile, privileged users such as administrator or db_owner which has CONTROL permission on the database or user with proper UNMASK permission would see the real phone number when running the same query.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;How this helps Developers :&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;By pushing the masking logic down to the database, developers and DBAs avoid writing repetitive masking code in every app or report that touches this data. In our scenario, without DDM you might implement a check in the application like:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;If&amp;nbsp;user_role&amp;nbsp;== “Support”,&amp;nbsp;then show “XXXX” for phone number, else show full phone.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;With DDM, such conditional code&amp;nbsp;isn’t&amp;nbsp;needed – the database takes care of it. This means:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Less application code&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;to write and&amp;nbsp;maintain&amp;nbsp;for masking&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Consistent masking&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;everywhere (whether data is accessed via app, report, or ad-hoc query).&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Quick changes&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;to masking rules in one place if requirements change, without hunting through application code.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;From a security standpoint, DDM reduces the risk of accidental data exposure and helps in compliance scenarios where personal data must be protected in lower environments or by certain roles, while reducing the developer effort drastically.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;In the next posts of this series, we’ll explore other masking functions (like Email, Partial, and Random etc) with different scenarios. By the end, you’ll see how each built-in mask can be applied to make data security and compliance more developer-friendly!&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Reference Links :&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://learn.microsoft.com/en-us/sql/relational-databases/security/dynamic-data-masking?view=sql-server-ver17" target="_blank"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;Dynamic Data Masking - SQL Server | Microsoft Learn&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/database/dynamic-data-masking-overview?view=azuresql" target="_blank"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;Dynamic Data Masking - Azure SQL Database &amp;amp; Azure SQL Managed Instance &amp;amp; Azure Synapse Analytics | Microsoft Learn&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 02 Mar 2026 10:17:08 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-sql-blog/why-developers-and-dbas-love-sql-s-dynamic-data-masking-series/ba-p/4498450</guid>
      <dc:creator>MadhumitaTripathyMSFT</dc:creator>
      <dc:date>2026-03-02T10:17:08Z</dc:date>
    </item>
    <item>
      <title>Multiple secondaries for failover groups is now in public preview</title>
      <link>https://techcommunity.microsoft.com/t5/azure-sql-blog/multiple-secondaries-for-failover-groups-is-now-in-public/ba-p/4489005</link>
      <description>&lt;P&gt;Failover groups for Azure SQL Database is a business continuity solution that lets you manage the replication and failover of databases to another Azure SQL logical server.&amp;nbsp; With failover groups, you get automatic endpoint redirection, so you don't have to change the connection string for your application after a geo-failover—connections are automatically routed to the current primary.&amp;nbsp; Until now, Azure SQL failover groups have only supported one secondary.&lt;/P&gt;
&lt;P&gt;We're excited to announce that Azure SQL Database failover groups support for up to &lt;STRONG&gt;four secondaries&lt;/STRONG&gt;&amp;nbsp;is now available in public preview. This enhancement gives you greater flexibility for disaster recovery, regional read scale-out, and complex high-availability scenarios.&lt;/P&gt;
&lt;H4&gt;What's New?&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;Create up to&amp;nbsp;&lt;STRONG&gt;four secondaries&lt;/STRONG&gt;&amp;nbsp;for each failover group, deployed across the same or different Azure regions.&lt;/LI&gt;
&lt;LI&gt;Use the additional secondaries to add&amp;nbsp;&lt;STRONG&gt;read scale-out capabilities&lt;/STRONG&gt; to additional regions, adding flexibility for read-only workloads.&lt;/LI&gt;
&lt;LI&gt;Greater flexibility for&amp;nbsp;&lt;STRONG&gt;disaster recovery planning&lt;/STRONG&gt;&amp;nbsp;with multiple failover targets.&lt;/LI&gt;
&lt;LI&gt;Improved &lt;STRONG&gt;resilience&lt;/STRONG&gt;&amp;nbsp;by distributing secondaries across multiple geographic regions.&lt;/LI&gt;
&lt;LI&gt;Facilitate &lt;STRONG&gt;migration&lt;/STRONG&gt; to another region without sacrificing existing disaster recovery protection.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;How to Get Started&lt;/H4&gt;
&lt;P&gt;Getting started with multiple secondaries in Azure SQL failover groups is straightforward.&lt;/P&gt;
&lt;P&gt;In the Azure Portal, the process to create a failover group remains the same.&amp;nbsp; You can add additional secondaries using the process below.&lt;/P&gt;
&lt;H5&gt;Adding Additional Secondary Servers to a Failover Group in the Portal&lt;/H5&gt;
&lt;OL&gt;
&lt;LI&gt;Go to your Azure SQL Database logical server in the Azure portal.&lt;/LI&gt;
&lt;LI&gt;Open the&amp;nbsp;&lt;STRONG&gt;"Failover groups"&lt;/STRONG&gt; blade under&amp;nbsp;&lt;STRONG&gt;"Data management"&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;Select an existing failover group.&lt;/LI&gt;
&lt;LI&gt;Click the&amp;nbsp;&lt;STRONG&gt;"Add server"&lt;/STRONG&gt;&amp;nbsp;menu item to add additional secondary servers.&lt;/LI&gt;
&lt;LI&gt;A side panel opens displaying the list of secondary servers and a dropdown to select which server should operate as the&amp;nbsp;&lt;STRONG&gt;read-only listener endpoint target&lt;/STRONG&gt;.&amp;nbsp; The additional secondary server can be in the same or different Azure region as the primary.&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;NOTE&lt;/STRONG&gt;: The read-only listener endpoint dropdown lists all existing secondary servers as well as the secondary server being added. This allows you to designate which secondary server should receive read-only traffic routed through the `&amp;lt;fog-name&amp;gt;.secondary.database.windows.net` endpoint. However, the server selected as the read-only listener endpoint target&amp;nbsp;&lt;STRONG&gt;should not be in the same region as the primary server&lt;/STRONG&gt;&amp;nbsp;if you intend to serve read workloads with that endpoint.&lt;/LI&gt;
&lt;/OL&gt;
&lt;img&gt;Adding an additional secondary to your failover group and specifying the read-only listener endpoint target&lt;/img&gt;
&lt;OL start="6"&gt;
&lt;LI&gt;After selecting the additional secondary and specifying your read-only listener endpoint target, click "Select" on the side panel and click "Save" in the main menu to apply your failover group configuration.&amp;nbsp; The additional secondary will be added and seeding of databases in the failover group will begin to that additional secondary.&amp;nbsp; You can modify your read-only listener endpoint target with the "Edit configuration" menu option.&lt;/LI&gt;
&lt;/OL&gt;
&lt;img&gt;Save the configuration for the failover group with the newly added secondary&lt;/img&gt;&lt;img&gt;Databases in the failover group will begin seeding to the newly added secondary&lt;/img&gt;
&lt;P&gt;&lt;STRONG&gt;TIP&lt;/STRONG&gt;: If you want zone redundancy enabled for the secondary databases, ensure that the secondary servers are in regions that support availability zones and configure the zone redundancy setting appropriately.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;Using PowerShell&lt;/H4&gt;
&lt;P&gt;Creating a failover group with multiple secondaries can also be done with PowerShell.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Example - Create a failover group with multiple secondaries:&lt;/STRONG&gt;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;New-AzSqlDatabaseFailoverGroup `
   -ResourceGroupName "myrg" `
   -ServerName "primaryserver" `
   -PartnerServerName "secondaryserver1" `
   -FailoverGroupName "myfailovergroup" `
   -FailoverPolicy "Manual" `
   -PartnerServerList @("secondary_uri_1", "secondary_uri_2", "secondary_uri_3", "secondary_uri_4") `
   -ReadOnlyEndpointTargetServer "secondary_uri_1"

where "secondary_uri_n" is in the form below and secondaryserver1 is also included in the list
"/subscriptions/your_sub_guid/resourceGroups/your_resource_group/providers/Microsoft.Sql/servers/your_server_name"&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Example - Add additional secondary servers to an existing failover group:&lt;/STRONG&gt;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;Set-AzSqlDatabaseFailoverGroup `
   -ResourceGroupName "myrg" `
   -ServerName "primaryserver" `
   -FailoverGroupName "myfailovergroup" `
   -FailoverPolicy "Manual" `
   -PartnerServerList @("secondary_uri_1", "secondary_uri_2", "secondary_uri_3", "secondary_uri_4") `
   -ReadOnlyEndpointTargetServer "secondary_uri_1"

where "secondary_uri_n" is in the form below and secondaryserver1 is also included in the list
"/subscriptions/your_sub_guid/resourceGroups/your_resource_group/providers/Microsoft.Sql/servers/your_server_name"&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;Performing a Failover&lt;/H4&gt;
&lt;P&gt;With multiple secondaries, you can choose which secondary to promote to primary during a failover.&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;Using the Portal&lt;/H5&gt;
&lt;OL&gt;
&lt;LI&gt;Navigate to your SQL server's&amp;nbsp;&lt;STRONG&gt;Failover groups&lt;/STRONG&gt;&amp;nbsp;blade.&lt;/LI&gt;
&lt;LI&gt;Select the failover group you want to fail over.&lt;/LI&gt;
&lt;LI&gt;In the servers list, locate the secondary server you want to promote.&lt;/LI&gt;
&lt;LI&gt;Click the&amp;nbsp;&lt;STRONG&gt;ellipsis menu (...)&lt;/STRONG&gt;&amp;nbsp;next to the server.&lt;/LI&gt;
&lt;/OL&gt;
&lt;img&gt;Use the ellipsis menu for failover options and to remove a server from the failover group&lt;/img&gt;
&lt;OL start="5"&gt;
&lt;LI&gt;Select&amp;nbsp;&lt;STRONG&gt;Failover&lt;/STRONG&gt; for a planned failover (with full data synchronization) or&amp;nbsp;&lt;STRONG&gt;Forced failover&lt;/STRONG&gt;&amp;nbsp;for an unplanned failover (potential data loss).&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;TIP&lt;/STRONG&gt;: The ellipsis menu also includes a&amp;nbsp;&lt;STRONG&gt;Remove server&lt;/STRONG&gt; option, allowing you to remove a secondary server from the failover group.&amp;nbsp;&lt;/P&gt;
&lt;H5&gt;Using PowerShell&lt;/H5&gt;
&lt;P&gt;For PowerShell, use the `Switch-AzSqlDatabaseFailoverGroup` cmdlet to perform a failover.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Example:&lt;/STRONG&gt;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;Switch-AzSqlDatabaseFailoverGroup `
   -ResourceGroupName "myrg" `
   -ServerName "secondaryserver1" `
   -FailoverGroupName "myfailovergroup"&lt;/LI-CODE&gt;
&lt;H4&gt;Key Benefits&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Enhanced Disaster Recovery&lt;/STRONG&gt; - Multiple geo-secondaries provide additional failover targets, reducing the risk of total service disruption.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Regional Read Scale-Out&amp;nbsp;&lt;/STRONG&gt;- Distribute read-only workloads across multiple regions.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Flexible HA/DR Architecture&amp;nbsp;&lt;/STRONG&gt;- Design your high-availability architecture based on your specific business requirements.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Ease migrations to another region&lt;/STRONG&gt; - Leverage the additional secondary to migrate to a different Azure region while maintaining DR protection.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;Limitations &amp;amp; Notes&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;You can create up to &lt;STRONG&gt;four secondaries&lt;/STRONG&gt;&amp;nbsp;per failover group.&lt;/LI&gt;
&lt;LI&gt;Each secondary must be hosted on a &lt;STRONG&gt;different logical server&lt;/STRONG&gt; from the primary.&lt;/LI&gt;
&lt;LI&gt;Secondary servers can be in the same region as the primary or in different regions.&lt;/LI&gt;
&lt;LI&gt;The &lt;STRONG&gt;read-only listener endpoint target&lt;/STRONG&gt; must be in a different region from the primary if you want to make use of the read-only listener for read workloads.&lt;/LI&gt;
&lt;LI&gt;The failover group name must be globally unique&amp;nbsp;within the `.database.windows.net` domain.&lt;/LI&gt;
&lt;LI&gt;Chaining (creating a geo-replica of a geo-replica) is not supported.&lt;/LI&gt;
&lt;LI&gt;Secondary databases in a failover group inherit the backup storage redundancy and zone redundancy configuration from the primary, depending on the service tier.&lt;/LI&gt;
&lt;LI&gt;For non-Hyperscale databases: Secondary databases will not have high availability (zone redundancy) enabled by default. Enable it after the failover group is created.&lt;/LI&gt;
&lt;LI&gt;For Hyperscale databases: Secondary databases inherit the high availability settings from their respective primary databases.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;Best Practices&lt;/H4&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Use paired regions&lt;/STRONG&gt;&amp;nbsp;when possible—failover groups in paired regions have better performance compared to unpaired regions.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Test your failover procedures&lt;/STRONG&gt;&amp;nbsp;regularly using planned failovers to ensure your disaster recovery plan works as expected.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Monitor replication lag&lt;/STRONG&gt; using `sys.dm_geo_replication_link_status` or the Replication Lag metric in Azure Monitor to ensure your secondaries are synchronized.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Consider your RTO and RPO requirements&lt;/STRONG&gt;&amp;nbsp;when designing your failover group architecture.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Use the read-write listener&lt;/STRONG&gt; (`&amp;lt;fog-name&amp;gt;.database.windows.net`) for write workloads and the &lt;STRONG&gt;read-only listener&lt;/STRONG&gt; (`&amp;lt;fog-name&amp;gt;.secondary.database.windows.net`) for read workloads to take advantage of the automatic endpoint redirection after failovers.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Use customer-managed failover group policy&lt;/STRONG&gt; to ensure your RTO and RPO are in your control.&lt;/LI&gt;
&lt;/OL&gt;
&lt;H4&gt;Frequently Asked Questions&lt;/H4&gt;
&lt;OL&gt;
&lt;LI&gt;What services tiers are supported for multiple secondaries in failover group?&lt;BR /&gt;&lt;BR /&gt;
&lt;P&gt;The following service tiers are supported:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Standard&lt;/LI&gt;
&lt;LI&gt;General Purpose&lt;/LI&gt;
&lt;LI&gt;Premium&lt;/LI&gt;
&lt;LI&gt;Business Critical&lt;/LI&gt;
&lt;LI&gt;Hyperscale&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;When there is more than one secondary, how does read only endpoint work?&lt;/P&gt;
&lt;P&gt;While creating a failover group with more than one secondary you must designate one of the secondaries as the read only endpoint target.&amp;nbsp; All read only connections will be routed to the designated secondary.&lt;/P&gt;
&lt;P&gt;If a failover group is created with just one secondary, then the read only endpoint will default to the only available secondary.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;If I have created multiple secondaries for failover group, can I update the read only endpoint at any time?&lt;BR /&gt;&lt;BR /&gt;Yes, you can "Edit configuration" in the portal or use PowerShell to change the read-only listener endpoint target.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;
&lt;P&gt;How does Auto DR work when multiple secondaries exist for a failover group?&lt;/P&gt;
&lt;P&gt;The primary server (read write endpoint) and secondary server (designated as read only endpoint) will be used as a pair for Auto DR failover and endpoints will be swapped upon failover.&lt;/P&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;H4&gt;Learn More&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/azure-sql/database/failover-group-sql-db?view=azuresql" target="_blank" rel="noopener"&gt;Failover groups overview &amp;amp; best practices - Azure SQL Database | Microsoft Learn&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/azure-sql/database/failover-group-configure-sql-db?view=azuresql&amp;amp;tabs=azure-portal%2Cazure-powershell-manage&amp;amp;pivots=azure-sql-single-db" target="_blank" rel="noopener"&gt;Configure a failover group for Azure SQL Database | Microsoft Learn&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/azure-sql/database/active-geo-replication-overview?view=azuresql" target="_blank" rel="noopener"&gt;Active Geo-Replication - Azure SQL Database | Microsoft Learn&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/azure-sql/database/business-continuity-high-availability-disaster-recover-hadr-overview?view=azuresql" target="_blank" rel="noopener"&gt;Business continuity overview - Azure SQL Database | Microsoft Learn&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="http://learn.microsoft.com/en-us/powershell/module/az.sql/new-azsqldatabasefailovergroup?view=azps-15.2.0" target="_blank" rel="noopener"&gt;PowerShell - New Failover Group&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="http://learn.microsoft.com/en-us/powershell/module/az.sql/set-azsqldatabasefailovergroup?view=azps-15.2.0" target="_blank" rel="noopener"&gt;PowerShell - Modify Failover Group&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="http://learn.microsoft.com/en-us/powershell/module/az.sql/switch-azsqldatabasefailovergroup?view=azps-15.2.0" target="_blank" rel="noopener"&gt;PowerShell - Perform a failover&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 30 Jan 2026 16:52:54 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-sql-blog/multiple-secondaries-for-failover-groups-is-now-in-public/ba-p/4489005</guid>
      <dc:creator>mhyon</dc:creator>
      <dc:date>2026-01-30T16:52:54Z</dc:date>
    </item>
    <item>
      <title>Why ledger verification is non-negotiable</title>
      <link>https://techcommunity.microsoft.com/t5/azure-sql-blog/why-ledger-verification-is-non-negotiable/ba-p/4485290</link>
      <description>&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Data integrity isn’t just a buzzword, it’s the backbone of trust in any database system. With&amp;nbsp;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/sql/relational-databases/security/ledger/ledger-overview?view=sql-server-ver16&amp;amp;preserve-view=true" target="_blank" rel="noopener"&gt;the&amp;nbsp;ledger functionality&amp;nbsp;in Azure SQL and SQL Server&lt;/A&gt;, organizations have a powerful way to ensure their data hasn’t been tampered with. But here’s the catch: &lt;STRONG&gt;&lt;U&gt;many customers implement ledger tables yet skip the critical step of running the ledger verification procedure&lt;/U&gt;&lt;/STRONG&gt;. This oversight can leave your data vulnerable and your compliance posture shaky.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2&gt;&lt;SPAN data-ccp-props="{}"&gt;What is a database digest?&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{}"&gt;Ledger is a feature that allows SQL Server, Azure SQL Database or Azure SQL Managed Instance to cryptographically link transactions in a tamper-evident manner. Think of it as a blockchain-like mechanism inside your database: every transaction is hashed and chained, creating a block. The hash of the latest block in the database ledger is called &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/sql/relational-databases/security/ledger/ledger-digest-management?view=sql-server-ver16&amp;amp;preserve-view=true" target="_blank" rel="noopener"&gt;the database digest&lt;/A&gt;. It represents the state of all ledger tables in the database at the time when the block was generated. These digests can be stored externally, such as in &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/storage/blobs/immutable-storage-overview" target="_blank"&gt;immutable storage&lt;/A&gt; or &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/confidential-ledger/overview" target="_blank"&gt;Azure Confidential Ledger&lt;/A&gt;, to prevent tampering, providing an independent proof of integrity.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;H2&gt;&lt;SPAN data-ccp-props="{}"&gt;How does ledger verification work?&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;The &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/sql/relational-databases/security/ledger/ledger-database-verification?view=sql-server-ver16" target="_blank" rel="noopener"&gt;ledger verification&lt;/A&gt; procedure compares the current state of your ledger tables against the stored digests. It recalculates hashes and validates the chain to confirm that no unauthorized changes have occurred. Without this step, you’re essentially trusting the ledger without verifying it, a dangerous assumption in environments where compliance and security matter.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can launch the verification by running the following stored procedure:&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="sql"&gt;DECLARE @digest_locations NVARCHAR(MAX) = (SELECT * FROM sys.database_ledger_digest_locations FOR JSON AUTO, INCLUDE_NULL_VALUES); 
SELECT @digest_locations as digest_locations; 
BEGIN TRY 
        EXEC sys.sp_verify_database_ledger_from_digest_storage @digest_locations; 
        SELECT 'Ledger verification succeeded.' AS Result; 
END TRY 
BEGIN CATCH 
        THROW; 
END CATCH&lt;/LI-CODE&gt;
&lt;H2&gt;Why skipping verification is risky&lt;/H2&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Many organizations assume that enabling ledger tables is enough. It’s not. If you don’t run verification:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;Tampering&amp;nbsp;goes&amp;nbsp;undetected:&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;A malicious actor could alter historical data without triggering alarms.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Compliance&amp;nbsp;gaps:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;Regulatory frameworks often require proof of integrity, not just theoretical guarantees.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;False&amp;nbsp;sense of&amp;nbsp;security:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt; Ledger without verification is like encryption without key management, half a solution.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;&lt;SPAN data-ccp-props="{}"&gt;Benefits of regular verification&lt;/SPAN&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Assurance of data integrity:&lt;/STRONG&gt; Confirms that your ledger is intact and trustworthy.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Audit readiness:&lt;/STRONG&gt; Provides verifiable evidence for compliance audits.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Early detection:&lt;/STRONG&gt; Identifies anomalies before they become catastrophic breaches.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Call to action&lt;/H2&gt;
&lt;P&gt;If you’re using ledger tables in SQL Server or Azure SQL, &lt;U&gt;&lt;STRONG&gt;make verification part of your operational routine&lt;/STRONG&gt;&lt;/U&gt;. Schedule it. Automate it. Treat it as essential, not optional. Your data, your compliance, and your reputation depend on it.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 13 Jan 2026 10:28:01 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-sql-blog/why-ledger-verification-is-non-negotiable/ba-p/4485290</guid>
      <dc:creator>PieterVanhove</dc:creator>
      <dc:date>2026-01-13T10:28:01Z</dc:date>
    </item>
    <item>
      <title>2025 Year in Review: What’s new across SQL Server, Azure SQL and SQL database in Fabric</title>
      <link>https://techcommunity.microsoft.com/t5/azure-sql-blog/2025-year-in-review-what-s-new-across-sql-server-azure-sql-and/ba-p/4477514</link>
      <description>&lt;P&gt;What a year 2025 has been for SQL! ICYMI and are looking for some hype, might I recommend you start with this blog from Priya Sathy, the product leader for all of SQL at Microsoft:&amp;nbsp;&lt;A href="https://www.microsoft.com/en-us/sql-server/blog/2025/11/18/one-consistent-sql-the-launchpad-from-legacy-to-innovation/" target="_blank" rel="noopener"&gt;One consistent SQL: The launchpad from legacy to innovation&lt;/A&gt;. In this blog post, Priya explains how we have developed and continue to develop one consistent SQL which “unifies your data estate, bringing platform consistency, performance at scale, advanced security, and AI-ready tools together in one seamless experience and creates one home for your SQL workloads in the era of AI.”&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For the FIFTH(!!) year in a row (my heart is warm with the number, I love SQL and #SQLfamily, and time is flying), I am sharing my annual Year in Review blog with all the SQL Server, Azure SQL and SQL database in Fabric news this year. Of course, you can catch weekly episodes related to what’s new and diving deeper on the Azure SQL YouTube channel at&amp;nbsp;&lt;A href="https://aka.ms/AzureSQLYT" target="_blank" rel="noopener"&gt;aka.ms/AzureSQLYT&lt;/A&gt;. This year, in addition to Data Exposed (52 new episodes and over 70K views!). We saw many new series related to areas like GitHub Copilot, SSMS, VS Code, and Azure SQL Managed Instance land in the channel, in addition to Data Exposed.&lt;/P&gt;
&lt;H2&gt;Microsoft Ignite announcements&lt;/H2&gt;
&lt;P&gt;Of course, if you’re looking for the latest announcements from Microsoft Ignite, Bob Ward and I compiled this slide of highlights.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Comprehensive list of 2025 updates&lt;/H2&gt;
&lt;P&gt;You can read this blog (or use AI to reference it later) to get all the updates and references from the year (so much happened at Ignite but before it too!). Here’s all the updates from the year:&lt;/P&gt;
&lt;H3&gt;SQL Server, Arc-enabled SQL Server, and SQL Server on Azure VMs&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;Generally Available&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/sqlserver/sql-server-2025-is-now-generally-available/4470570" target="_blank" rel="noopener"&gt;SQL Server 2025 is Now Generally Available&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/general-availability-announcement-of-backuprestore-capabilities-in-sql-server-20/4467065" target="_blank" rel="noopener"&gt;Backup/Restore capabilities in SQL Server 2025&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/sqlserver/sql-server-2025-deeply-integrated-and-feature-rich-on-linux/4471068" target="_blank" rel="noopener"&gt;SQL Server 2025: Deeply Integrated and Feature-rich on Linux&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/sqlserver/resource-governor---a-new-beginning/4470025" target="_blank" rel="noopener"&gt;Resource Governor for Standard Edition&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/sqlserver/reimagining-data-excellence-sql-server-2025-accelerated-by-pure-storage/4470810" target="_blank" rel="noopener"&gt;Reimagining Data Excellence: SQL Server 2025 Accelerated by Pure Storage&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/sqlserver/security-update-for-sql-server-2022-rtm-cu21/4469060" target="_blank" rel="noopener"&gt;Security Update for SQL Server 2022 RTM CU21&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/sqlserver/cumulative-update-22-for-sql-server-2022-rtm/4469670" target="_blank" rel="noopener"&gt;Cumulative Update #22 for SQL Server 2022 RTM&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/whats-new-in-the-backuprestore-area-in-sql-server-2025/4474613" target="_blank" rel="noopener"&gt;Backup/Restore enhancements in SQL Server 2025&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurearcblog/unified-configuration-and-governance-for-azure-windows-server-and-linux-server/4469769" target="_blank" rel="noopener"&gt;Unified configuration and governance&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurearcblog/expanding-azure-arc-for-hybrid-and-multicloud-management/4470656" target="_blank" rel="noopener"&gt;Expanding Azure Arc for Hybrid and Multicloud Management&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurearcblog/sql-server-enabled-by-azure-arc-is-now-generally-available-in-the-us-government-/4443077" target="_blank" rel="noopener"&gt;US Government Virginia region support&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/azure/azure-sql/virtual-machines/windows/storage-performance-analysis?view=azuresql" target="_blank" rel="noopener"&gt;I/O Analysis for SQL Server on Azure VMs&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/sqlserver/unlocking-enterprise-ai-sql-server-2025-and-nvidia-nemotron-rag-accelerate-ai/4470790" target="_blank" rel="noopener"&gt;NVIDIA Nemotron RAG Integration&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Preview&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurearcblog/accelerate-your-cloud-migration-journey-with-azure-arc-resource-discovery-in-azu/4469975" target="_blank" rel="noopener"&gt;Azure Arc resource discovery in Azure Migrate&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurearcblog/public-preview-multicloud-connector-support-for-google-cloud/4470700" target="_blank" rel="noopener"&gt;Multicloud connector support for Google Cloud&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Migrations&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;Generally Available&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/microsoftdatamigration/sql-server-migration-in-azure-arc-%E2%80%93-generally-available/4471020" target="_blank" rel="noopener"&gt;SQL Server migration in Azure Arc&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/microsoftdatamigration/announcing-the-azure-database-migration-service-hub-experience/4454900" target="_blank" rel="noopener"&gt;Azure Database Migration Service Hub Experience&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/microsoftdatamigration/release-announcement-of-sql-server-migration-assistant-ssma-v10-3/4454953" target="_blank" rel="noopener"&gt;SQL Server Migration Assistant (SSMA) v10.3, including Db2 SKU recommendation (preview)&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/microsoftdatamigration/general-availability---dmss-powershell-azure-cli-and-python-sdk/4461650" target="_blank" rel="noopener"&gt;Database Migration Service: PowerShell, Azure CLI, and Python SDK&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/microsoftdatamigration/release-announcement-of-sql-server-migration-assistant-ssma-v10-4/4469378" target="_blank" rel="noopener"&gt;SQL Server Migration Assistant (SSMA) v10.4, including SQL Server 2025 support, Oracle conversion Copilot&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/microsoftdatamigration/general-availability---schema-migration-support-in-azure-database-migration-serv/4439569" target="_blank" rel="noopener"&gt;Schema migration support in Azure Database Migration Service&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Preview&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azurearcblog/accelerate-your-cloud-migration-journey-with-azure-arc-resource-discovery-in-azu/4469975" target="_blank" rel="noopener"&gt;Azure Arc resource discovery in Azure Migrate&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;&amp;nbsp;&lt;/H3&gt;
&lt;H3&gt;Azure SQL Managed Instance&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;Generally Available&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/generally-available-azure-sql-managed-instance-next-gen-general-purpose/4470970" target="_blank" rel="noopener"&gt;Next-gen General Purpose Service Tier&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/improved-connectivity-types-in-azure-sql-managed-instance/4462629" target="_blank" rel="noopener"&gt;Improved connectivity types in Azure SQL Managed Instance&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sqlmi-zr-ga" target="_blank" rel="noopener"&gt;Improved resiliency with zone redundancy for general purpose, improved log rate for business critical&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/ri-pricing-bc-zr" target="_blank" rel="noopener"&gt;Apply reservation discount for zone redundant Business Critical databases&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sqlmi-free" target="_blank" rel="noopener"&gt;Free offer&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/WindowsNativePrincipalsGA" target="_blank" rel="noopener"&gt;Windows principals use to simplify migrations&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sqlmi-sep-docs" target="_blank" rel="noopener"&gt;Data exfiltration improvements&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Preview&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/windows-authentication-for-cloud-native-identities-modernizing-azure-sql-managed/4475784" target="_blank" rel="noopener"&gt;Windows Authentication for Cloud-Native Identities&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/introducing-new-update-policy-for-azure-sql-managed-instance/4470231" target="_blank" rel="noopener"&gt;New update policy for Azure SQL Managed Instance&lt;/A&gt; &lt;STRONG style="color: rgb(30, 30, 30);"&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Azure SQL Database&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;Generally Available&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/azure-sql-database-ltr-backup-immutability-is-now-generally-available/4471457" target="_blank" rel="noopener"&gt;LTR Backup Immutability&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/how-to-get-a-free-azure-sql-database-or-managed-instance/4471390" target="_blank" rel="noopener"&gt;Free Azure SQL Database Offer updates&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/hs-conversion-geodr-ga" target="_blank" rel="noopener"&gt;Move to Hyperscale while preserving existing geo-replication or failover group settings&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sqlmi-redirect-default" target="_blank" rel="noopener"&gt;Improve redirect connection type to require only port 1433 and promote to default&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/sql/t-sql/functions/dateadd-transact-sql?view=sql-server-ver17" target="_blank" rel="noopener"&gt;Bigint support in DATEADD for extended range calculations&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sqlrestart" target="_blank" rel="noopener"&gt;Restart your database from the Azure portal&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sqldbreplicationlagmetric" target="_blank" rel="noopener"&gt;Replication lag metric&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/ServerAuditRedesign" target="_blank" rel="noopener"&gt;Enhanced server audit and server audit action groups&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/geo-zone-redundant-storage-gzrs-is-now-available-for-additional-azure-sql-databa/4292187" target="_blank" rel="noopener"&gt;Read-access geo-zone redundant storage (RA-GZRS) as a backup storage type for non-Hyperscale&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/hs-conversion-v2-ga" target="_blank" rel="noopener"&gt;Improved cutover experience to Hyperscale&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/sqldbavailmetric" target="_blank" rel="noopener"&gt;SLA-compliant availability metric&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/hs-shrink-ga" target="_blank" rel="noopener"&gt;Use database shrink to reduced allocated space for Hyperscale databases&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/AzureSQLBlog/identify-causes-of-auto-resuming-serverless-workloads-in-azure-sql-database/4452741" target="_blank" rel="noopener" data-lia-auto-title="Identify causes of auto-resuming serverless workloads" data-lia-auto-title-active="0"&gt;Identify causes of auto-resuming serverless workloads&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Preview&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/multiple-geo-replicas-for-azure-sql-hyperscale-is-now-in-public-preview/4462632" target="_blank" rel="noopener"&gt;Multiple geo-replicas for Azure SQL Hyperscale&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/public-preview-backup-immutability-for-azure-sql-database-ltr-backups/4461478" target="_blank" rel="noopener"&gt;Backup immutability for Azure SQL Database LTR backups&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Updates across SQL Server, Azure SQL and Fabric SQL database&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;Generally Available&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/general-availability-announcement-regex-support-in-sql-server-2025--azure-sql/4470684" target="_blank" rel="noopener"&gt;Regex Support and fuzzy-string matching&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/geo-replication-and-transparent-data-encryption-key-management/4461808" target="_blank" rel="noopener"&gt;Geo-replication and Transparent Data Encryption key management&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/sqlserver/introducing-optimized-locking-v2/4468745" target="_blank" rel="noopener"&gt;Optimized locking v2&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/azuresqlhubblog" target="_blank" rel="noopener"&gt;Azure SQL hub in the Azure portal&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/unistr-strconcat-blog" target="_blank" rel="noopener"&gt;UNISTR intrinsic function and ANSI SQL concatenation operator (||)&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/azuresql-vector-ga" target="_blank" rel="noopener"&gt;New vector data type&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/json-index" target="_blank" rel="noopener"&gt;JSON index&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/sql/t-sql/data-types/json-data-type?view=azuresqldb-current" target="_blank" rel="noopener"&gt;JSON data type and aggregates&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Preview&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/stream-data-in-near-real-time-from-sql-to-azure-event-hubs---public-preview/4470724" target="_blank" rel="noopener"&gt;Stream data to Azure Event Hubs with Change Event Streaming&lt;/A&gt;&amp;nbsp;(Azure SQL DB Public Preview/Fabric SQL Private Preview)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/sqlserver/announcing-public-preview-of-diskann-in-sql-server-2025/4414683" target="_blank" rel="noopener"&gt;DiskANN vector indexing&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;SQL database in Microsoft Fabric and Mirroring&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;Generally Available&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://blog.fabric.microsoft.com/en-us/blog/fabric-databases-a-unified-saas-native-experience-for-modern-data-workloads-generally-available?ft=Databases:category" target="_blank" rel="noopener"&gt;Fabric Databases&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://blog.fabric.microsoft.com/en-us/blog/announcing-sql-database-in-fabric-is-now-generally-available-ga?ft=Databases:category" target="_blank" rel="noopener"&gt;SQL database in Fabric&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://blog.fabric.microsoft.com/en-us/blog/unlocking-enterprise-ready-sql-database-in-microsoft-fabric-auditing-backup-copilot-more?ft=Databases:category" target="_blank" rel="noopener"&gt;Unlocking Enterprise ready SQL database in Microsoft Fabric: ALM improvements, Backup customizations and retention, Copilot enhancements &amp;amp; more update details&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://blog.fabric.microsoft.com/en-us/blog/mirroring-for-sql-server-in-microsoft-fabric-generally-available?ft=Databases:category" target="_blank" rel="noopener"&gt;Mirroring for SQL Server&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://blog.fabric.microsoft.com/en-us/blog/announcing-the-general-availability-ga-of-mirroring-for-azure-sql-managed-instance-in-microsoft-fabric?ft=Databases:category" target="_blank" rel="noopener"&gt;Mirroring for Azure SQL Managed Instance in Microsoft Fabric&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://blog.fabric.microsoft.com/en-us/blog/connect-to-your-sql-database-in-fabric-using-python-notebook?ft=Databases:category" target="_blank" rel="noopener"&gt;Connect to your SQL database in Fabric using Python Notebook&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://blog.fabric.microsoft.com/en-us/blog/updates-to-database-development-tools-for-sql-database-in-fabric?ft=Databases:category" target="_blank" rel="noopener"&gt;Updates to database development tools for SQL database in Fabric&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://blog.fabric.microsoft.com/en-us/blog/accelerating-data-movement-by-using-fast-copy-to-unlock-performance-and-efficiency-during-data-ingestion-from-sql-database-in-fabric?ft=Databases:category" target="_blank" rel="noopener"&gt;Using Fast Copy for data ingestion&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://blog.fabric.microsoft.com/en-us/blog/announcing-copilot-for-sql-analytics-endpoint-in-microsoft-fabric?ft=Databases:category" target="_blank" rel="noopener"&gt;Copilot for SQL analytics endpoint&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://blog.fabric.microsoft.com/en-us/blog" target="_blank" rel="noopener"&gt;Any updates across Microsoft Fabric that apply to the SQL analytics endpoint are generally supported in mirrored databases and Fabric SQL databases via the SQL analytics endpoint. This includes many exciting areas, like Data Agents. See the Fabric blog to get inspired&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Preview&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/fabric/database/sql/data-virtualization" target="_blank" rel="noopener"&gt;Data virtualization support&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/fabric/security/security-workspace-level-private-links-set-up?tabs=fabric-portal" target="_blank" rel="noopener"&gt;Workspace level Private Link support&lt;/A&gt;&amp;nbsp;(Private Preview)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://blog.fabric.microsoft.com/en-us/blog/announcing-public-preview-customer-managed-keys-in-fabric-sql-database?ft=Databases:category" target="_blank" rel="noopener"&gt;Customer-managed keys in Fabric SQL Database&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/announcing-public-preview-auditing-for-fabric-sql-database/4466803" target="_blank" rel="noopener"&gt;Auditing for Fabric SQL Database&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://blog.fabric.microsoft.com/en-us/blog/how-to-create-a-sql-database-in-fabric-using-fabric-cli?ft=Databases:category" target="_blank" rel="noopener"&gt;Fabric CLI: Create a SQL database in Fabric&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://blog.fabric.microsoft.com/en-us/blog/creating-sql-database-workload-in-fabric-with-terraform-a-step-by-step-guide?ft=Databases:category" target="_blank" rel="noopener"&gt;SQL database workload in Fabric with Terraform&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://blog.fabric.microsoft.com/en-us/blog/spark-connector-for-sql-databases-preview?ft=Databases:category" target="_blank" rel="noopener"&gt;Spark Connector for SQL databases&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Tools and developer&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://www.microsoft.com/en-us/sql-server/blog/2025/12/05/how-the-microsoft-sql-team-is-investing-in-sql-tools-and-experiences/" target="_blank" rel="noopener"&gt;Blog to Read: How the Microsoft SQL team is investing in SQL tools and experiences&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/sqlserver/announcing-the-release-of-sql-server-management-studio-22-1/4476621" target="_blank" rel="noopener"&gt;SQL Server Management Studio (SSMS) 22.1&lt;/A&gt;&amp;nbsp;
&lt;UL&gt;
&lt;LI&gt;GitHub Copilot Walkthrough (Preview): Guided onboarding from the Copilot badge.&lt;/LI&gt;
&lt;LI&gt;Copilot right-click actions (Preview): Document, Explain, Fix, and Optimize.&lt;/LI&gt;
&lt;LI&gt;Bring your own model (BYOM) support in Copilot (Preview).&lt;/LI&gt;
&lt;LI&gt;Copilot performance: improved response time after the first prompt in a thread.&lt;/LI&gt;
&lt;LI&gt;Fixes: addressed Copilot “Run ValidateGeneratedTSQL” loop and other stability issues.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/sqlserver/announcing-the-release-of-sql-server-management-studio-22/4468220" target="_blank" rel="noopener"&gt;SQL Server Management Studio (SSMS) 22&lt;/A&gt;&amp;nbsp;
&lt;UL&gt;
&lt;LI&gt;Support for SQL Server 2025&lt;/LI&gt;
&lt;LI&gt;Modern connection dialog as default + Fabric browsing on the Browse tab.&lt;/LI&gt;
&lt;LI&gt;Windows Arm64 support (initial) for core scenarios (connect + query).&lt;/LI&gt;
&lt;LI&gt;GitHub Copilot in SSMS (Preview)&amp;nbsp;is available via the AI Assistance workload in the VS Installer.&lt;/LI&gt;
&lt;LI&gt;T-SQL/UX improvements: open execution plan in new tab, JSON viewer, results grid zooms.&lt;/LI&gt;
&lt;LI&gt;New index support: create JSON and Vector indexes from Object Explorer&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/sqlserver/sql-server-management-studio-ssms-21-is-now-generally-available-ga/4415230" target="_blank" rel="noopener"&gt;SQL Server Management Studio (SSMS) 21&lt;/A&gt;&amp;nbsp;
&lt;UL&gt;
&lt;LI&gt;Installation and automatic updates via Visual Studio Installer.&lt;/LI&gt;
&lt;LI&gt;Workloads/components model: smaller footprint + customizable install.&lt;/LI&gt;
&lt;LI&gt;Git integration is available via the Code tools workload.&lt;/LI&gt;
&lt;LI&gt;Modern connection dialog experience (Preview).&lt;/LI&gt;
&lt;LI&gt;New customization options (e.g., vertical tabs, tab coloring, results in grid NULL styling).&lt;/LI&gt;
&lt;LI&gt;Always Encrypted Assessment in the Always Encrypted Wizard.&lt;/LI&gt;
&lt;LI&gt;Migration assistance via the Hybrid and Migration workload.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://techcommunity.microsoft.com/blog/sqlserver/announcing-general-availability-of-the-mssql-python-driver/4470788" target="_blank" rel="noopener"&gt;mssql-python Driver&lt;/A&gt;&amp;nbsp;
&lt;UL&gt;
&lt;LI&gt;ODBC:&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-ver17" target="_blank" rel="noopener"&gt;Microsoft ODBC Driver 18.5.2.1 for SQL Server&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;OLE DB:&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/sql/connect/oledb/release-notes-for-oledb-driver-for-sql-server?view=sql-server-ver17#1941" target="_blank" rel="noopener"&gt;Microsoft OLE DB Driver 19.4.1 for SQL Server&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;JDBC (latest train):&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/sql/connect/jdbc/release-notes-for-the-jdbc-driver?view=sql-server-ver17#1321" target="_blank" rel="noopener"&gt;Microsoft JDBC Driver for SQL Server 13.2.1&lt;/A&gt;&amp;nbsp;
&lt;UL&gt;
&lt;LI&gt;Also updated in 2025: supported JDBC branches received multiple servicing updates (including Oct 13, 2025, security fixes). See the same&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/sql/connect/jdbc/release-notes-for-the-jdbc-driver?view=sql-server-ver17" target="_blank" rel="noopener"&gt;JDBC release notes&lt;/A&gt;&amp;nbsp;for the full list.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;.NET:&amp;nbsp;&lt;A href="https://github.com/dotnet/SqlClient/releases/tag/v6.0.2" target="_blank" rel="noopener"&gt;Microsoft.Data.SqlClient 6.0.2&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Related - some notes on drivers released/updated in 2025 (recap):&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/vscode-mssql-november2025" target="_blank" rel="noopener"&gt;MSSQL extension for VS Code 1.37.0&lt;/A&gt;&amp;nbsp;
&lt;UL&gt;
&lt;LI&gt;GitHub Copilot integration : Ask/Agent modes, slash commands, onboarding.&lt;/LI&gt;
&lt;LI&gt;Edit Data : interactive grid for editing table data (requires&amp;nbsp;mssql.enableExperimentalFeatures: true).&lt;/LI&gt;
&lt;LI&gt;Data-tier Application dialog : deploy/extract&amp;nbsp;.dacpac&amp;nbsp;and import/export&amp;nbsp;.bacpac&amp;nbsp;(requires&amp;nbsp;mssql.enableExperimentalFeatures: true).&lt;/LI&gt;
&lt;LI&gt;Publish SQL Project dialog : deploy&amp;nbsp;.sqlproj&amp;nbsp;to an existing DB or a local SQL dev container.&lt;/LI&gt;
&lt;LI&gt;Added “What’s New” panel + improved query results grid stability/accessibility.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://aka.ms/vscode-mssql-september2025" target="_blank" rel="noopener"&gt;MSSQL extension for VS Code&amp;nbsp;1.36.0&lt;/A&gt;&amp;nbsp;
&lt;UL&gt;
&lt;LI&gt;Fabric connectivity : browse Fabric workspaces and connect to SQL DBs / SQL analytics endpoints.&lt;/LI&gt;
&lt;LI&gt;SQL database in Fabric provisioning : create Fabric SQL databases from Deployments.&lt;/LI&gt;
&lt;LI&gt;GitHub Copilot slash commands : connection, schema exploration, query tasks.&lt;/LI&gt;
&lt;LI&gt;Schema Compare extensibility: new run command for external extensions/SQL Projects (incl. Update Project from Database support).&lt;/LI&gt;
&lt;LI&gt;Query results in performance/reliability improvements (incremental streaming, fewer freezes, better settings handling).&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/sql/tools/sqlpackage/release-notes-sqlpackage?view=sql-server-ver17#170094-sqlpackage" target="_blank" rel="noopener"&gt;SqlPackage 170.0.94 release notes (April 2025)&lt;/A&gt;&amp;nbsp;
&lt;UL&gt;
&lt;LI&gt;Vector: support for&amp;nbsp;vector&amp;nbsp;data type in Azure SQL Database target platform (import/export/extract/deploy/build).&lt;/LI&gt;
&lt;LI&gt;SQL projects: default compatibility level for Azure SQL Database and SQL database in Fabric set to 170.&lt;/LI&gt;
&lt;LI&gt;Parquet: expanded supported types (including&amp;nbsp;json,&amp;nbsp;xml, and&amp;nbsp;vector) + bcp fallback for unsupported types.&lt;/LI&gt;
&lt;LI&gt;Extract: unpack a&amp;nbsp;.dacpac&amp;nbsp;to a folder via&amp;nbsp;/Action:Extract.&lt;/LI&gt;
&lt;LI&gt;Platform: Remove .NET 6 support; .NET Framework build updated to 4.7.2.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/sql/tools/sqlpackage/release-notes-sqlpackage?view=sql-server-ver17#170161-sqlpackage" target="_blank" rel="noopener"&gt;SqlPackage 170.1.61 release notes (July 2025)&lt;/A&gt;&amp;nbsp;
&lt;UL&gt;
&lt;LI&gt;Data virtualization (Azure SQL DB): added support for data virtualization objects in import/export/extract/publish.&lt;/LI&gt;
&lt;LI&gt;Deployment: new publishing properties&amp;nbsp;/p:IgnorePreDeployScript&amp;nbsp;and&amp;nbsp;/p:IgnorePostDeployScript.&lt;/LI&gt;
&lt;LI&gt;Permissions: support for&amp;nbsp;ALTER ANY EXTERNAL MIRROR&amp;nbsp;(Azure SQL DB + SQL database in Fabric) for exporting mirrored tables.&lt;/LI&gt;
&lt;LI&gt;SQL Server 2025 permissions: support for&amp;nbsp;CREATE ANY EXTERNAL MODEL,&amp;nbsp;ALTER ANY EXTERNAL MODEL, and&amp;nbsp;ALTER ANY INFORMATION PROTECTION.&lt;/LI&gt;
&lt;LI&gt;Fixes: improved Fabric compatibility (e.g., avoid deploying unsupported server objects; fixes for Fabric extraction scripting).&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/sql/tools/sqlpackage/release-notes-sqlpackage?view=sql-server-ver17#170270-sqlpackage" target="_blank" rel="noopener"&gt;SqlPackage 170.2.70 release notes (October 2025)&lt;/A&gt;&amp;nbsp;
&lt;UL&gt;
&lt;LI&gt;External models: support for external models in Azure SQL Database and SQL Server 2025.&lt;/LI&gt;
&lt;LI&gt;AI functions: support for&amp;nbsp;AI_GENERATE_CHUNKS&amp;nbsp;and&amp;nbsp;AI_GENERATE_EMBEDDINGS.&lt;/LI&gt;
&lt;LI&gt;JSON: support for JSON indexes + functions&amp;nbsp;JSON_ARRAYAGG,&amp;nbsp;JSON_OBJECTAGG,&amp;nbsp;JSON_QUERY.&lt;/LI&gt;
&lt;LI&gt;Vector: vector indexes +&amp;nbsp;VECTOR_SEARCH and expanded&amp;nbsp;vector&amp;nbsp;support for SQL Server 2025.&lt;/LI&gt;
&lt;LI&gt;Regex: support for&amp;nbsp;REGEXP_LIKE.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/microsoft/DacFx/releases/tag/sdk-1.0.0" target="_blank" rel="noopener"&gt;Microsoft.Build.Sql 1.0.0 (SQL database projects SDK)&lt;/A&gt;&amp;nbsp;
&lt;UL&gt;
&lt;LI&gt;Breaking: .NET 8 SDK required for&amp;nbsp;dotnet build&amp;nbsp;(Visual Studio build unchanged).&lt;/LI&gt;
&lt;LI&gt;Globalization support.&lt;/LI&gt;
&lt;LI&gt;Improved SDK/Templates docs (more detailed README + release notes links).&lt;/LI&gt;
&lt;LI&gt;Code analyzer template defaults&amp;nbsp;DevelopmentDependency.&lt;/LI&gt;
&lt;LI&gt;Build validation: check for duplicate build items.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://github.com/microsoft/DacFx/releases/tag/sdk-2.0.0" target="_blank" rel="noopener"&gt;Microsoft.Build.Sql 2.0.0 (SQL database projects SDK)&lt;/A&gt;&amp;nbsp;
&lt;UL&gt;
&lt;LI&gt;Added SQL Server 2025 target platform (Sql170DatabaseSchemaProvider).&lt;/LI&gt;
&lt;LI&gt;Updated DacFx version to 170.2.70.&lt;/LI&gt;
&lt;LI&gt;.NET SDK targets imported by default (includes newer .NET build features/fixes; avoids full rebuilds with no changes&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure-data-studio/whats-happening-azure-data-studio?tabs=dev" target="_blank" rel="noopener"&gt;Azure Data Studio retirement announcement (retirement February 28, 2026)&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Anna’s Pick of the &lt;S&gt;&lt;STRONG&gt;Month&lt;/STRONG&gt;&lt;/S&gt;&lt;STRONG&gt; Year&lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;It’s hard to pick a highlight representative of the whole year, so I’ll take the cheesy way out: people. I get to work with great people working on a great set of products for great people (like you) solving real world problems for people. So, thank YOU and you’re my pick of the year 🧀&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Until next &lt;STRONG&gt;time… &lt;/STRONG&gt;&lt;/H2&gt;
&lt;P&gt;That’s it for now! We release new episodes on Thursdays and new #MVPTuesday episodes on the last Tuesday of every month at &lt;A href="https://aka.ms/azuresqlyt" target="_blank" rel="noopener"&gt;aka.ms/azuresqlyt&lt;/A&gt;. The team has been producing a lot more video content outside of Data Exposed, which you can find at that link too!&lt;/P&gt;
&lt;P&gt;Having trouble keeping up? Be sure to follow us on twitter to get the latest updates on everything, &lt;A href="https://twitter.com/AzureSQL" target="_blank" rel="noopener"&gt;@AzureSQL&lt;/A&gt;. And if you lose this blog, just remember &lt;A href="https://aka.ms/newsupdate2025" target="_blank" rel="noopener"&gt;aka.ms/newsupdate2025&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We hope to see you next YEAR, on Data Exposed!&lt;/P&gt;
&lt;P&gt;--Anna and Marisa&lt;/P&gt;</description>
      <pubDate>Thu, 18 Dec 2025 17:08:23 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-sql-blog/2025-year-in-review-what-s-new-across-sql-server-azure-sql-and/ba-p/4477514</guid>
      <dc:creator>Anna Hoffman</dc:creator>
      <dc:date>2025-12-18T17:08:23Z</dc:date>
    </item>
    <item>
      <title>Identify causes of auto-resuming serverless workloads in Azure SQL Database</title>
      <link>https://techcommunity.microsoft.com/t5/azure-sql-blog/identify-causes-of-auto-resuming-serverless-workloads-in-azure/ba-p/4452741</link>
      <description>&lt;P&gt;&lt;STRONG&gt;We are pleased to announce that telemetry is now available in Azure Monitor activity log to identify the causes of auto-resuming serverless workloads in Azure SQL Database.&amp;nbsp; &lt;/STRONG&gt;Prior to exposing this telemetry, the correlation of specific auto-resume causes with database activity could be time consuming and imperfect with no programmatic solution.&lt;/P&gt;
&lt;H3&gt;Serverless auto-pausing and auto-resuming&lt;/H3&gt;
&lt;P&gt;Serverless in SQL Database automatically scales compute based on workload demand and bills for compute used per second.&amp;nbsp; In the General Purpose tier, serverless also provides an option to automatically pause the database during idle usage periods when only storage related costs are billed.&amp;nbsp; The more a database is idle, the more auto-pausing can help reduce compute costs.&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Automatic resuming occurs when database activity returns or certain management related or system operations are performed.&amp;nbsp; Some examples of auto-resume triggers include logins, vulnerability assessment, modification to security settings like data masking rules, and service updates.&amp;nbsp; A comprehensive description of auto-resume triggers is documented in the &lt;A href="https://learn.microsoft.com/azure/azure-sql/database/serverless-tier-overview?view=azuresql&amp;amp;tabs=general-purpose#auto-resume" target="_blank" rel="noopener"&gt;learning reference for serverless&lt;/A&gt;.&lt;/P&gt;
&lt;H3&gt;Activity log for auto-pause and auto-resume events&lt;/H3&gt;
&lt;P&gt;The Azure Monitor activity log keeps a record of all auto-pause and auto-resume events for serverless databases.&amp;nbsp; Auto-resume causes are reported in activity log for "Resume Databases" operations under the “Caller” property of the "Succeeded" event, and latencies for each event are reported under “EventProperties”.&amp;nbsp; This event can be monitored to quickly and deterministically identify auto-resume causes without resorting to inefficient guesswork.&amp;nbsp;&lt;/P&gt;
&lt;P class=""&gt;&lt;STRONG&gt;&lt;EM class="lia-align-left"&gt;Example of Activity log in Azure portal showing an auto-resume event including the cause and latency&amp;nbsp;&amp;nbsp;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;In this example, the serverless database is auto-resumed in around 38 seconds in order to perform a security related vulnerability assessment.&lt;/P&gt;
&lt;P&gt;Understanding the causes of auto-resuming can help in optimizing database access patterns to minimize auto-resume occurrences, keep the database paused for longer, and reduce compute costs even further.&lt;/P&gt;
&lt;H3&gt;Learn more&lt;/H3&gt;
&lt;P&gt;For more information, please see &lt;A href="https://learn.microsoft.com/azure/azure-sql/database/serverless-tier-overview?view=azuresql&amp;amp;tabs=general-purpose" target="_blank" rel="noopener"&gt;Azure SQL Database serverless&lt;/A&gt; and &lt;A href="https://learn.microsoft.com/azure/azure-monitor/platform/activity-log?tabs=log-analytics" target="_blank" rel="noopener"&gt;Azure Monitor activity log&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Tue, 16 Dec 2025 21:41:52 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-sql-blog/identify-causes-of-auto-resuming-serverless-workloads-in-azure/ba-p/4452741</guid>
      <dc:creator>Morgan_Oslake</dc:creator>
      <dc:date>2025-12-16T21:41:52Z</dc:date>
    </item>
    <item>
      <title>Windows Authentication for Cloud-Native Identities: Modernizing Azure SQL Managed Instance (Preview)</title>
      <link>https://techcommunity.microsoft.com/t5/azure-sql-blog/windows-authentication-for-cloud-native-identities-modernizing/ba-p/4475784</link>
      <description>&lt;P&gt;Organizations moving to the cloud often face a critical challenge: maintaining seamless authentication for legacy applications without compromising security or user experience. Today, we’re excited to announce &lt;STRONG&gt;support for Windows Authentication for Microsoft Entra principals on Azure SQL Managed Instance&lt;/STRONG&gt;, enabling &lt;STRONG&gt;cloud-native identities&lt;/STRONG&gt; to authenticate using familiar Windows credentials.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Why This Matters&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Traditionally, Windows Authentication relied on on-premises Active Directory, making it difficult for businesses adopting a &lt;STRONG&gt;cloud-only strategy&lt;/STRONG&gt; to preserve existing authentication models. With this new capability:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Hybrid Identity Support:&lt;/STRONG&gt; Users synchronized between on-premises AD DS and Microsoft Entra ID can continue using a single set of credentials for both environments.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Cloud-Only Identity (Preview):&lt;/STRONG&gt; Identities that exist only in Microsoft Entra ID can now leverage Kerberos-based Windows Authentication for workloads like Azure SQL Managed Instance—without requiring domain controllers.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;This means organizations can &lt;STRONG&gt;modernize infrastructure while maintaining compatibility with legacy apps&lt;/STRONG&gt;, reducing friction during migration.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Key Benefits&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Seamless Migration:&lt;/STRONG&gt; Move legacy applications to Azure SQL Managed Instance without rewriting authentication logic.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Passwordless Security:&lt;/STRONG&gt; Combine Windows Authentication with modern credentials like &lt;STRONG&gt;Windows Hello for Business&lt;/STRONG&gt; or &lt;STRONG&gt;FIDO2 keys&lt;/STRONG&gt;, enabling MFA and reducing password-related risks.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Cloud-Native Integration:&lt;/STRONG&gt; Microsoft Entra Kerberos acts as a cloud-based Key Distribution Center (KDC), issuing Kerberos tickets for cloud resources such as Azure SQL Managed Instance and Azure Files&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Breaking Barriers to Cloud Migration&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Many enterprises hesitate to migrate legacy apps because they depend on Windows Authentication. By extending this capability to&amp;nbsp;&lt;STRONG&gt;cloud-native identities&lt;/STRONG&gt;, we remove a major barrier—allowing customers to &lt;STRONG&gt;modernize at their own pace&lt;/STRONG&gt; while leveraging familiar authentication models.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Learn More&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/winauth-azuread-overview?view=azuresql" target="_blank"&gt;https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/winauth-azuread-overview?view=azuresql&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/entra/identity/authentication/kerberos#group-sid-limit-in-entra-kerberos-preview" target="_blank"&gt;Microsoft Entra Kerberos Overview&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Sun, 07 Dec 2025 07:26:57 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-sql-blog/windows-authentication-for-cloud-native-identities-modernizing/ba-p/4475784</guid>
      <dc:creator>sravani-saluru</dc:creator>
      <dc:date>2025-12-07T07:26:57Z</dc:date>
    </item>
    <item>
      <title>Whats new in the Backup/Restore area in SQL Server 2025</title>
      <link>https://techcommunity.microsoft.com/t5/azure-sql-blog/whats-new-in-the-backup-restore-area-in-sql-server-2025/ba-p/4474613</link>
      <description>&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Over the past several months,&amp;nbsp;we’ve&amp;nbsp;heard from countless customers who are eager for more robust options to protect, compress, and safeguard their SQL Server data. Since introducing these features in public preview, organizations of all sizes have&amp;nbsp;validated&amp;nbsp;their value in real-world workloads and provided invaluable feedback.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Following are &lt;STRONG&gt;three &lt;/STRONG&gt;“hidden gems” (as one of our customers called &amp;nbsp;them), in the Backup/Restore area we announced with SQL Server 2025. &lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;201341983&amp;quot;:0,&amp;quot;335551550&amp;quot;:1,&amp;quot;335551620&amp;quot;:1,&amp;quot;335559685&amp;quot;:0,&amp;quot;335559737&amp;quot;:0,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:278}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Backups on Secondary for Always&amp;nbsp;On&amp;nbsp;Availability Groups&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;, &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;ZSTD Compression&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;, and &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Immutable Backups for Ransomware Protection&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;. These advancements are now ready for production use, built around the needs and requests of the SQL Server&amp;nbsp;customers.&lt;/SPAN&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG style="color: rgb(30, 30, 30); font-size: 24px;"&gt;&lt;SPAN data-contrast="auto"&gt;1. Backups on Secondary for SQL Server Always On Availability Groups&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Previously in preview, this feature now reaches GA, allowing you to&amp;nbsp;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;offload backup operations to secondary replicas&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;&amp;nbsp;in Always&amp;nbsp;On&amp;nbsp;Availability Groups. This enhancement&amp;nbsp;optimizes&amp;nbsp;resource&amp;nbsp;utilization&amp;nbsp;and minimizes overhead on primary replicas, ensuring better performance for mission-critical workloads.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;What’s New in GA:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Improved reliability and support for production environments.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Key Benefits:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Comprehensive support: Full, differential, and transaction log backups are now fully supported on secondary replicas—not just COPY_ONLY and transaction logs.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Reduced impact on primary replica performance.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Simplified high-availability strategies.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Learn more from the original announcement:&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/introducing-backups-on-secondary-for-sql-server-always-on-availability-groups-wi/4422167" target="_blank"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;Introducing Backups on Secondary for SQL Server Always On Availability Groups&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt; &lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;2. ZSTD Compression in SQL Server 2025&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The GA of ZSTD compression brings modern, efficient data compression to SQL Server.&amp;nbsp;ZSTD compression introduces industry-leading performance and efficiency, letting you save storage and speed up workloads.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;What’s New in GA:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="3" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Full production support for ZSTD across key workloads.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Key Benefits:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Faster compression and decompression compared to legacy algorithms.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Lower storage footprint without sacrificing performance.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Choose your algorithm: ZSTD is now a standard option right alongside MS_XPRESS for row, page, and backup compression.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="4" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Tunable compression levels: Administrators can select from LOW, MEDIUM, or HIGH to balance resource use and savings.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="5" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Ideal for large-scale data environments.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Explore the preview details:&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/zstd-compression-in-sql-server-2025/4415418" target="_blank"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;ZSTD Compression in SQL Server 2025&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;3. Backups to immutable storage: A Powerful Shield Against Ransomware&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Your backups are now safer than ever. Thanks to native support for &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;immutability with Azure Blob Storage&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;, backup files can be&amp;nbsp;rendered&amp;nbsp;tamper-proof—protecting them from ransomware or even accidental deletion.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Key Benefits:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Strong defense against ransomware and malicious tampering.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Compliance with regulatory requirements for data integrity.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Peace of mind for critical backup strategies.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Read the detailed use-case and how-to: &lt;/SPAN&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/immutability-a-powerful-shield-against-ransomware-in-sql-environments/4427180" target="_blank"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;Immutability: A Powerful Shield Against Ransomware in SQL Environments&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;These features collectively empower organizations to:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Optimize&amp;nbsp;performance and resource&amp;nbsp;utilization.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Reduce operational costs through efficient compression.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Strengthen security posture against evolving threats.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Get Started&amp;nbsp;Today&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;These features are available to all SQL Server 2025 customers. Ready to elevate your data protection, efficiency, and compliance posture?&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Access the official SQL Server 2025 documentation for step-by-step guides&amp;nbsp;via&amp;nbsp;visit&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://learn.microsoft.com/sql" target="_blank"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;Microsoft Learn&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Review upgrade guidance and best practices.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Explore real-world configurations and FAQs.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Upgrade now and unlock the next level of resilience, efficiency, and security for your SQL Server workloads!&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 02 Dec 2025 17:39:38 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-sql-blog/whats-new-in-the-backup-restore-area-in-sql-server-2025/ba-p/4474613</guid>
      <dc:creator>Dinakar-Nethi</dc:creator>
      <dc:date>2025-12-02T17:39:38Z</dc:date>
    </item>
    <item>
      <title>Step-by-Step Guide: Route Azure SQL Audit Logs to Multiple Log Analytics Workspaces</title>
      <link>https://techcommunity.microsoft.com/t5/azure-sql-blog/step-by-step-guide-route-azure-sql-audit-logs-to-multiple-log/ba-p/4473665</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Scenario:&lt;/STRONG&gt;&lt;BR /&gt;Many organizations need to route audit logs from Azure SQL Database to more than one Log Analytics workspace. For example, your security team may use Microsoft Sentinel in one workspace, while your application team analyzes logs in another. Azure now makes this possible—here’s how to set it up, and what to watch out for.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Why Send Audit Logs to Multiple Workspaces?&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Separation of Duties: Security and application teams can access the logs they need, independently.&lt;/LI&gt;
&lt;LI&gt;Integration with Different Tools: Sentinel may use one workspace for SIEM, while app teams use another for analytics.&lt;/LI&gt;
&lt;LI&gt;Compliance and Regional Needs&lt;STRONG&gt;:&lt;/STRONG&gt; Some organizations must store logs in different regions or workspaces for regulatory reasons.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Step-by-Step Guide&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt; Enable Auditing to Log Analytics Workspace&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;UL&gt;
&lt;LI&gt;Go to your Azure SQL Server in the Azure Portal.&lt;/LI&gt;
&lt;LI&gt;Under Security, select Auditing.&lt;/LI&gt;
&lt;LI&gt;Set the audit destination to your primary&amp;nbsp;Log Analytics workspace, Click Save.&lt;img /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Tip:&lt;/STRONG&gt; Enabling auditing here automatically creates a diagnostic setting for the selected workspace.&lt;/P&gt;
&lt;OL start="2"&gt;
&lt;LI&gt;&lt;STRONG&gt; Add Diagnostic Settings for Additional Workspaces&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;UL&gt;
&lt;LI&gt;In azure portal search for Diagnostic settings.&lt;/LI&gt;
&lt;LI&gt;Search for your subscription and master database of SQL Server to create diagnostics setting at server level&lt;/LI&gt;
&lt;LI&gt;Click + Add diagnostic setting.&lt;/LI&gt;
&lt;LI&gt;Name your setting (e.g., “AuditToAppWorkspace”).&lt;/LI&gt;
&lt;LI&gt;Under Log, select audit, select SQLSecurityAuditEvents (uncheck “DevOpsAudit” if not needed).&lt;/LI&gt;
&lt;LI&gt;Choose an additional Log Analytics workspace as the destination.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Click Save&lt;/STRONG&gt;.&lt;img /&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;create new setting&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Note:&lt;/STRONG&gt; You can repeat this step to send audit logs to as many workspaces as needed.&lt;/P&gt;
&lt;P&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;Example Use Case&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;A customer uses:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Workspace A for Microsoft Sentinel (security monitoring)&lt;/LI&gt;
&lt;LI&gt;Workspace B for application analytics&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;By configuring multiple diagnostic settings, both teams receive the audit data they need—no manual exports required.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Summary&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Configuring multiple diagnostic settings allows you to send Azure SQL Database audit logs to several Log Analytics workspaces. This is essential for organizations with different teams or compliance needs. Remember:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Enable auditing first&lt;/LI&gt;
&lt;LI&gt;Add diagnostic settings for each workspace&lt;/LI&gt;
&lt;LI&gt;Monitor for cost and avoid duplicate logs&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;References:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/database/auditing" target="_blank"&gt;https://learn.microsoft.com/en-us/azure/azure-sql/database/auditing&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/diagnostic-settings" target="_blank"&gt;https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/diagnostic-settings&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 28 Nov 2025 06:55:57 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-sql-blog/step-by-step-guide-route-azure-sql-audit-logs-to-multiple-log/ba-p/4473665</guid>
      <dc:creator>sravani-saluru</dc:creator>
      <dc:date>2025-11-28T06:55:57Z</dc:date>
    </item>
    <item>
      <title>Azure SQL Database LTR Backup Immutability is now Generally Available</title>
      <link>https://techcommunity.microsoft.com/t5/azure-sql-blog/azure-sql-database-ltr-backup-immutability-is-now-generally/ba-p/4471457</link>
      <description>&lt;P&gt;Azure SQL Database is a fully managed, always‑up‑to‑date relational database service built for mission‑critical apps. It delivers built‑in high availability, automated backups, and elastic scale, with strong security and compliance capabilities.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Today, I am very excited to announce the &lt;STRONG&gt;General Availability of immutability for Azure SQL DB LTR backups!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Azure SQL Database now supports &lt;STRONG&gt;immutable&lt;/STRONG&gt; long‑term retention (LTR) backups, stored in &lt;STRONG&gt;write‑once, read‑many (WORM)&lt;/STRONG&gt; state for a fixed (customer configured) period. That means your LTR backups cannot be modified or deleted during the lock window—even by highly privileged identities—helping you preserve clean restore points after a cyberattack and strengthen your compliance posture.&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Why this matters: ransomware targets backups&lt;/H2&gt;
&lt;P&gt;Modern ransomware playbooks don’t stop at encrypting production data—they also attempt to &lt;STRONG&gt;alter or delete backups&lt;/STRONG&gt; to block recovery. With &lt;STRONG&gt;backup immutability&lt;/STRONG&gt;, Azure SQL Database LTR backups are written to &lt;STRONG&gt;immutable storage&lt;/STRONG&gt; and locked for the duration you specify, providing a resilient, tamper‑proof recovery layer so you can restore from a known‑good copy when it matters most.&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;What we’re announcing&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;General Availability&lt;/STRONG&gt; of &lt;STRONG&gt;Backup Immutability for Long‑Term Retention (LTR) backups&lt;/STRONG&gt; in &lt;STRONG&gt;Azure SQL Database&lt;/STRONG&gt;. This GA applies to &lt;STRONG&gt;Azure SQL database LTR backups&lt;/STRONG&gt;.&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;What immutability does (and doesn’t) do&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Prevents changes and deletion&lt;/STRONG&gt; of LTR backup artifacts for a defined, locked period (WORM). This protection applies even to highly privileged identities, reducing the risk from compromised admin accounts or insider misuse.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Helps address regulatory WORM expectations&lt;/STRONG&gt;, supporting customers who must retain non‑erasable, non‑rewritable records (for example, requirements under &lt;STRONG&gt;SEC Rule 17a‑4(f)&lt;/STRONG&gt;, &lt;STRONG&gt;FINRA Rule 4511(c)&lt;/STRONG&gt;, and &lt;STRONG&gt;CFTC Rule 1.31(c)–(d)&lt;/STRONG&gt;). Always consult your legal/compliance team for your specific obligations.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Complements a defense‑in‑depth strategy&lt;/STRONG&gt;—it’s not a replacement for identity hygiene, network controls, threat detection, and recovery drills. See Microsoft’s broader &lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/security/fundamentals/ransomware-protection" target="_blank"&gt;ransomware guidance for Azure&lt;/A&gt;.&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;How it works (at a glance)&lt;/H2&gt;
&lt;P&gt;When you enable immutability on an LTR policy, Azure SQL Database stores those LTR backups on &lt;STRONG&gt;Azure immutable storage&lt;/STRONG&gt; in a &lt;STRONG&gt;WORM&lt;/STRONG&gt; state. During the lock window, the backup cannot be modified or deleted; after the lock expires, normal retention/deletion applies per your policy.&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Key benefits&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Ransomware‑resilient recovery:&lt;/STRONG&gt; Preserve clean restore points that attackers can’t tamper with during the lock period.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Compliance‑ready retention:&lt;/STRONG&gt; Use WORM‑style retention to help meet industry and regulatory expectations for non‑erasable, non‑rewritable storage.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Operational simplicity:&lt;/STRONG&gt; Manage immutability alongside your existing Azure SQL Database &lt;STRONG&gt;long‑term retention&lt;/STRONG&gt; policies.&amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Get started&lt;/H2&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Choose databases&lt;/STRONG&gt; that require immutable LTR backups.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Enable immutability&lt;/STRONG&gt; on the LTR backup policy and &lt;STRONG&gt;set the retention/lock period&lt;/STRONG&gt; aligned to your regulatory and risk requirements.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Validate recovery&lt;/STRONG&gt; by restoring from an immutable LTR backup.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;Documentation:&lt;/STRONG&gt; Learn more about &lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/azure-sql/database/backup-immutability?view=azuresql" target="_blank"&gt;&lt;STRONG&gt;backup immutability for LTR backups in Azure SQL Database&lt;/STRONG&gt;&lt;/A&gt; in Microsoft Learn.&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Tell us what you think&lt;/H2&gt;
&lt;P&gt;We’d love your feedback on scenarios, guidance, and tooling that would make immutable backups even easier to adopt. Share your experiences and suggestions in the Azure SQL community forums and let us know how immutability is helping your organization raise its cyber‑resilience.&lt;/P&gt;</description>
      <pubDate>Wed, 19 Nov 2025 18:33:38 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-sql-blog/azure-sql-database-ltr-backup-immutability-is-now-generally/ba-p/4471457</guid>
      <dc:creator>Dinakar-Nethi</dc:creator>
      <dc:date>2025-11-19T18:33:38Z</dc:date>
    </item>
    <item>
      <title>General Availability announcement of Backup/Restore capabilities in SQL Server 2025</title>
      <link>https://techcommunity.microsoft.com/t5/azure-sql-blog/general-availability-announcement-of-backup-restore-capabilities/ba-p/4467065</link>
      <description>&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Over the past several months,&amp;nbsp;we’ve&amp;nbsp;heard from countless customers who are eager for more robust options to protect, compress, and safeguard their SQL Server data. Since introducing these features in public preview, organizations of all sizes have&amp;nbsp;validated&amp;nbsp;their value in real-world workloads and provided invaluable feedback. Today, we are thrilled to announce the General Availability (GA) of three powerful SQL Server 2025 features: &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Backups on Secondary for Always&amp;nbsp;On&amp;nbsp;Availability Groups&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;, &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;ZSTD Compression&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;, and &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;Immutable Backups for Ransomware Protection&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;. These advancements are now ready for production use, built around the needs and requests of the SQL Server&amp;nbsp;customers.&lt;/SPAN&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG style="color: rgb(30, 30, 30); font-size: 28px;"&gt;&lt;SPAN data-contrast="auto"&gt;Backups on Secondary for SQL Server Always On Availability Groups&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Previously in preview, this feature now reaches GA, allowing you to&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;offload backup operations to secondary replicas&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;&amp;nbsp;in Always&amp;nbsp;On&amp;nbsp;Availability Groups. This enhancement&amp;nbsp;optimizes&amp;nbsp;resource&amp;nbsp;utilization&amp;nbsp;and minimizes overhead on primary replicas, ensuring better performance for mission-critical workloads.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;What’s New in GA:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Improved reliability and support for production environments.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Key Benefits:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Comprehensive support: Full, differential, and transaction log backups are now fully supported on secondary replicas—not just COPY_ONLY and transaction logs.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Reduced impact on primary replica performance.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Simplified high-availability strategies.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Learn more from the original announcement:&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/introducing-backups-on-secondary-for-sql-server-always-on-availability-groups-wi/4422167" target="_blank"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;Introducing Backups on Secondary for SQL Server Always On Availability Groups&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt; &lt;/P&gt;
&lt;H3&gt;&lt;STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;ZSTD Compression in SQL Server 2025&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The GA of ZSTD compression brings modern, efficient data compression to SQL Server.&amp;nbsp;ZSTD compression introduces industry-leading performance and efficiency, letting you save storage and speed up workloads.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;What’s New in GA:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="3" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Full production support for ZSTD across key workloads.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Key Benefits:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Faster compression and decompression compared to legacy algorithms.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Lower storage footprint without sacrificing performance.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Choose your algorithm: ZSTD is now a standard&amp;nbsp;option&amp;nbsp;right alongside MS_XPRESS for row, page, and backup compression.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="4" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Tunable compression levels: Administrators can select from LOW, MEDIUM, or HIGH to balance resource use and savings.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="4" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="5" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Ideal for large-scale data environments.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Explore the preview details:&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/zstd-compression-in-sql-server-2025/4415418" target="_blank"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;ZSTD Compression in SQL Server 2025&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Backups to immutable storage: A Powerful Shield Against Ransomware&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Your backups are now safer than ever. Thanks to native support for &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;immutability with Azure Blob Storage&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;, backup files can be&amp;nbsp;rendered&amp;nbsp;tamper-proof—protecting them from ransomware or even accidental deletion.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Key Benefits:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Strong defense against ransomware and malicious tampering.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Compliance with regulatory requirements for data integrity.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Peace of mind for critical backup strategies.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Read the detailed use-case and how-to: &lt;/SPAN&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/immutability-a-powerful-shield-against-ransomware-in-sql-environments/4427180" target="_blank"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;Immutability: A Powerful Shield Against Ransomware in SQL Environments&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;These features collectively empower organizations to:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Optimize&amp;nbsp;performance and resource&amp;nbsp;utilization.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Reduce operational costs through efficient compression.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Strengthen security posture against evolving threats.&lt;/SPAN&gt; &amp;nbsp;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Get Started&amp;nbsp;Today&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;These features are available to all SQL Server 2025 customers. Ready to elevate your data protection, efficiency, and compliance posture?&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Access the official SQL Server 2025 documentation for step-by-step guides&amp;nbsp;via&amp;nbsp;visit&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://learn.microsoft.com/sql" target="_blank"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;Microsoft Learn&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Review upgrade guidance and best practices.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Explore real-world configurations and FAQs.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Upgrade now and unlock the next level of resilience, efficiency, and security for your SQL Server workloads!&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 19 Nov 2025 18:15:46 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-sql-blog/general-availability-announcement-of-backup-restore-capabilities/ba-p/4467065</guid>
      <dc:creator>Dinakar-Nethi</dc:creator>
      <dc:date>2025-11-19T18:15:46Z</dc:date>
    </item>
    <item>
      <title>How to get a free Azure SQL Database or Managed Instance</title>
      <link>https://techcommunity.microsoft.com/t5/azure-sql-blog/how-to-get-a-free-azure-sql-database-or-managed-instance/ba-p/4471390</link>
      <description>&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Next to the performance and security proven engine, with Azure SQL solutions you’re getting dozens of other benefits, such as auto-scaling, auto-patching/maintenance, auto-backups and built-in HA. Free Azure SQL offers fully managed resources with &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;zero cost&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt; and &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;zero commitment&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="auto"&gt;. There’re two options designed to start for free, test and grow at your pace:&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335551671&amp;quot;:0,&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="0" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Free &lt;STRONG&gt;Azure SQL Database&lt;/STRONG&gt; offer – Ideal for new applications or occasional/light workloads with serverless auto-scale and minimal admin work.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335551671&amp;quot;:0,&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Free &lt;STRONG&gt;Azure SQL Managed Instance &lt;/STRONG&gt;offer – Perfect for moderate SQL Server workloads in with near 100% compatibility, cross-DB queries, and SQL Agents.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;img&gt;User can choose one of these two offers or try both of them without any cost!&lt;/img&gt;
&lt;P class="lia-clear-both"&gt;&lt;SPAN data-contrast="auto"&gt;This guide will help you choose the right option based on your scenario and show you how to get started in minutes. If you already know your way around, &lt;A class="lia-external-url" href="https://portal.azure.com/#view/HubsExtension/ServiceMenuBlade/~/overview/extension/SqlAzureExtension/menuId/AzureSqlHub/itemId/SingleDatabase" target="_blank" rel="noopener"&gt;skip ahead and start for free now via Azure SQL Hub.&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H1 class="lia-clear-both"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;&lt;SPAN data-ccp-charstyle="Heading 1 Char"&gt;Path #1 – &lt;/SPAN&gt;&lt;SPAN data-ccp-charstyle="Heading 1 Char"&gt;Sta&lt;/SPAN&gt;&lt;SPAN data-ccp-charstyle="Heading 1 Char"&gt;rt, ex&lt;/SPAN&gt;&lt;SPAN data-ccp-charstyle="Heading 1 Char"&gt;peri&lt;/SPAN&gt;&lt;SPAN data-ccp-charstyle="Heading 1 Char"&gt;men&lt;/SPAN&gt;&lt;SPAN data-ccp-charstyle="Heading 1 Char"&gt;t&lt;/SPAN&gt;&lt;SPAN data-ccp-charstyle="Heading 1 Char"&gt; and &lt;/SPAN&gt;&lt;SPAN data-ccp-charstyle="Heading 1 Char"&gt;bui&lt;/SPAN&gt;&lt;SPAN data-ccp-charstyle="Heading 1 Char"&gt;ld new &lt;/SPAN&gt;&lt;SPAN data-ccp-charstyle="Heading 1 Char"&gt;appli&lt;/SPAN&gt;&lt;SPAN data-ccp-charstyle="Heading 1 Char"&gt;cations&lt;/SPAN&gt; &lt;SPAN data-ccp-charstyle="Heading 1 Char"&gt;in cloud&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:40,&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;P&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:40,&amp;quot;335559739&amp;quot;:0}"&gt;Azure SQL database free offer is best for building new applications, developing prototypes, or running light workloads in the cloud. This offer lets you create &lt;STRONG&gt;up to 10 Azure SQL databases for free, &lt;/STRONG&gt;with &lt;STRONG&gt;no expiration&lt;/STRONG&gt;. &lt;STRONG&gt;Each database&lt;/STRONG&gt; can use &lt;STRONG&gt;100,000 vCore-seconds&lt;/STRONG&gt; of compute and &lt;STRONG&gt;32 GB storage&lt;/STRONG&gt; per month at no charge – that’s roughly 28 hours of 1 vCore CPU time,&lt;STRONG&gt; refreshed every month&lt;/STRONG&gt;, per database. The databases run in the General Purpose tier and are serverless, meaning they automatically scale compute based on load and can pause when idle to save resources.&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2&gt;&lt;SPAN data-contrast="none"&gt;How to get started with an Azure SQL Database for free&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;OL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;Sign in to &lt;A class="lia-external-url" href="https://portal.azure.com/" target="_blank" rel="noopener"&gt;Azure&lt;/A&gt; and open the Azure SQL Database create page. If you don’t have an Azure account, create one (the Azure Free Account gives you credits and other free services, but this SQL DB free offer works with any subscription). In the Azure Portal, navigate to Azure SQL and choose Create SQL Database – or simply go to the&amp;nbsp;&lt;A class="lia-external-url" href="https://aka.ms/azuresqlhub" target="_blank" rel="noopener"&gt;https://aka.ms/azuresqlhub&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;and click “&lt;EM&gt;Try Azure SQL Database for free&lt;/EM&gt;”. This will open the SQL Database deployment blade.&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;STRONG&gt;Apply the free offer&lt;/STRONG&gt;.&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="none"&gt; At the top of the Create Azure SQL Database form, look for a banner that says &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="none"&gt;“Want to try Azure SQL Database for free?”&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="none"&gt; and click the Apply offer button. (If you used the Try for free link, the offer may be applied automatically.) When applied, you should see the price summary on the right update to Estimated Cost: $0.&lt;BR /&gt;&lt;/SPAN&gt;&lt;img /&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;STRONG&gt;Fill in database details&lt;/STRONG&gt;.&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt; Choose your Azure Subscription and either create or select a Resource Group for this database. Give your database a name (e.g. myFreeDB). For Server, create a new logical server (this is an Azure SQL Server that will host the DB) – provide a unique server name, set admin login and password, and choose a region. &lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;Note:&lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt; All free databases under one subscription must be in the same region (the first free DB’s region becomes fixed for up to 10 free DBs), so pick a region that makes sense for you (ideally where your app runs).&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;STRONG&gt;Leave the defaults for compute/storage&lt;/STRONG&gt;.&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="none"&gt; In &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="none"&gt;Compute + storage&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="none"&gt;, the form will default to a serverless General Purpose database with a certain compute size. You can always scale later, so it’s fine to start with the defaults.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;STRONG&gt;Set “free limit reached” behavior&lt;/STRONG&gt;. In the Basics tab, after applying the offer, you’ll see a setting for Behavior when free limit reached. Choose between:&lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1." data-font="" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1.&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;Auto-pause the database until next month – if the database runs out of free CPU or storage in a month, it will pause (become inaccessible) until the free quota resets next month. This ensures you never get billed. &lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="o" data-font="Courier New" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:1440,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Courier New&amp;quot;,&amp;quot;469769242&amp;quot;:[9675],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;o&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;Continue using database for additional charges – the database will not pause if it exceeds free limits; it will continue running and any overage will be billed at standard rates. You still get the first 100k seconds and 32 GB free each month. &lt;/SPAN&gt;&lt;SPAN data-contrast="none"&gt;(Once you choose “continue with charges,” you can’t revert to auto-pause for that database later in the portal). &lt;/SPAN&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="o" data-font="Courier New" data-listid="7" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:1440,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Courier New&amp;quot;,&amp;quot;469769242&amp;quot;:[9675],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;o&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;If you’re just testing, auto-pause is safest; if you’re building something that needs to run continuously, you might opt to continue (just monitor usage)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;H2&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Hyperlink"&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:40,&amp;quot;335559739&amp;quot;:0}"&gt;&lt;SPAN data-ccp-props="{}"&gt;Key benefits of the free Database offer&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;Serverless auto-scaling:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="none"&gt;&amp;nbsp;The free DB runs in serverless mode, which can automatically pause when idle and automatically resume on activity. This maximizes your free compute: if your app is only active part of the day, the database uses zero vCore seconds while paused. &lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;Monthly reset, no time limit&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="none"&gt;: The free allowances (100k vCore-seconds, 32 GB) renew each month for each database. And unlike some trials, this offer does not expire after several months, you can use it for the lifetime of your subscription. This “free tier” is available to any Azure subscription (new or existing, Pay-Go, CSP, Enterprise, etc.)&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="6" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="none"&gt;Scales with you (optional pay-as-you-go beyond free)&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN data-contrast="none"&gt;: If a database hits the free limits in a given month, you have a choice: either let it auto-pause until the next month (so you never incur charges), or switch to Bill overage to keep it running and simply pay for the over-limit usage. Importantly, you don’t lose your data or need to migrate—the transition from free to paid is seamless. And when your database needs more scaling headroom, more storage, or additional performance, switching to other offers in SQL DB is easy, fast, and does not require any application changes. You’ll still enjoy monthly free credits applied to it, and if you stay within the free resource limits each month, it remains completely free.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-charstyle="Heading 1 Char"&gt;Path #2 – Already running SQL Server on-premises or in VMs&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;?&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:40,&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;P&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="none"&gt;&lt;SPAN data-contrast="auto"&gt;Every application needs a database – sometimes just one, sometimes many.&lt;/SPAN&gt; &lt;SPAN data-contrast="auto"&gt;Maybe yours began as a small internal tool. Maybe it quietly grew into something business critical. It works. Your application knows how to talk to SQL Server. Your jobs run on schedule. Your database carries years of history, and your backup chain could probably tell the whole story.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Then one day someone asks: &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;“&lt;EM&gt;Can we try running this in the cloud?&lt;/EM&gt;”&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;The first reaction is often hesitation:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335551671&amp;quot;:0,&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Will everything still work?&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335551671&amp;quot;:0,&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Will it be compatible with our SQL Server 20XX version?&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335551671&amp;quot;:0,&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="4" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Will we need to rewrite part of the app?&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;And if you’re already running SQL Server (Express, Standard, or Enterprise) and your application depends on features that cloud databases don’t typically support such as:&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335551671&amp;quot;:0,&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="5" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Isolated environment with dedicated, separate compute&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335551671&amp;quot;:0,&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="6" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Cross-database queries&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335551671&amp;quot;:0,&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="7" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;SQL Agent jobs&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335551671&amp;quot;:0,&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="8" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Linked servers&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335551671&amp;quot;:0,&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="9" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;CLR assemblies&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="2" data-list-defn-props="{&amp;quot;335551671&amp;quot;:0,&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="10" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Transparent Data Encryption rules already in place&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt; Azure SQL Managed Instance gives you the &lt;STRONG&gt;ability to choose the SQL Server engine&lt;/STRONG&gt; (2022, 2025, or always-up-to-date) delivered as a &lt;STRONG&gt;fully managed service&lt;/STRONG&gt; – giving you the power of SQL Server with the &lt;STRONG&gt;simplicity of the cloud&lt;/STRONG&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2 aria-level="2"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;How to get started&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt; with SQL MI for f&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;ree&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:40,&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;It’s as easy as it can get – all you need to have is an &lt;/SPAN&gt;&lt;A class="lia-external-url" href="https://azure.microsoft.com/pricing/purchase-options/azure-account" target="_blank" rel="noopener"&gt;Azure account&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt; for free and Azure subscription. If you already have these two, simply open &lt;/SPAN&gt;&lt;A class="lia-external-url" href="https://aka.ms/create-free-sqlmi" target="_blank" rel="noopener"&gt;https://aka.ms/create-free-sqlmi&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt; – this link will lead you to create Azure SQL Managed Instance page with &lt;STRONG&gt;free offer automatically applied&lt;/STRONG&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P class="lia-clear-both"&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="none"&gt;&lt;SPAN data-contrast="auto"&gt;After populating the mandatory (*) fields in the create page, you will get your free SQL managed instance with &lt;STRONG&gt;built-in availability&lt;/STRONG&gt; and opened networking defaults. Automatically generated &lt;STRONG&gt;free instance name &lt;/STRONG&gt;is &lt;STRONG&gt;customizable &lt;/STRONG&gt;as many other options on the create page.&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;After finishing populating the mandatory fields on &lt;EM&gt;Basics&lt;/EM&gt; tab of create page &lt;STRONG&gt;click on "Review + create" and finish creation&lt;/STRONG&gt;.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;After ~20mins &lt;/STRONG&gt;you will be able to &lt;STRONG&gt;find your deployed instance&lt;/STRONG&gt; in the Azure portal by using the search bar or finding it within the ‘recent resources’ list on&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;the home page, like on the image below.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;After you’ve opened the free SQL MI resource, navigate to the &lt;STRONG&gt;Networking &lt;/STRONG&gt;page in Security and &lt;STRONG&gt;copy the public endpoint&lt;/STRONG&gt;.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;&lt;STRONG&gt;With&amp;nbsp;&lt;/STRONG&gt;this &lt;STRONG&gt;endpoint &lt;/STRONG&gt;you can now &lt;STRONG&gt;connect to your free SQL managed instance&lt;/STRONG&gt; with the tool of your choice, e.g. &lt;/SPAN&gt;&lt;SPAN class="lia-text-color-10"&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/ssms/install/install" target="_blank" rel="noopener"&gt;SSMS 22&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; or &lt;/SPAN&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/sql/tools/visual-studio-code-extensions/mssql/mssql-extension-visual-studio-code" target="_blank" rel="noopener"&gt;VSCode with MSSQL extension&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt; – Voilà! It’s that easy to create a free SQL MI and connect to it.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;From here, you can use SSMS Restore wizard or standard T-SQL &lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt;RESTORE FROM URL&lt;/SPAN&gt;&lt;SPAN data-contrast="auto"&gt; command to &lt;/SPAN&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/restore-sample-database-quickstart?view=azuresql#use-the-restore-wizard-to-restore-from-a-backup-file" target="_blank" rel="noopener"&gt;restore database from backup file&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;. You can either use sample database or your company’s database .bak files to test your real workload with Azure SQL Managed Instance. To restore these after you upload them to Azure Storage.&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2&gt;&lt;SPAN data-ccp-props="{}"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 2"&gt;Key benefits of free Managed Instance offer&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:40,&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;You can test your real-life workload for &lt;STRONG&gt;720vCore hours&lt;/STRONG&gt; with a &lt;STRONG&gt;4-vCore&lt;/STRONG&gt; or&lt;STRONG&gt; 8-vCore&lt;/STRONG&gt; free SQL managed instance that comes &lt;STRONG&gt;with 64GB of data&lt;/STRONG&gt; and &lt;STRONG&gt;backup storage&lt;/STRONG&gt; with up to &lt;STRONG&gt;500 databases&lt;/STRONG&gt;.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Benefit&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:279}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Why it Matters&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:279}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;720vCore hours each month&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;That means you can run your 4-vCore instance for 180 hours or an 8-vCore instance for 90 hours each month.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Included SQL license&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;You get hands on enterprise SQL Server – 2022, 2025 or evergreen SQL Server engine version free of charge.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Near 100% compatibility with &lt;/SPAN&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;SQL Server&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;You don’t have to rewrite your app or re-architect your database model (most of the time)&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Start/stop schedule by default&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Regular workday (9-5) enabled by default to ensure efficient use (running 4-vCore instance for up to 22 days).&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Restore .bak files directly&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Upload your backup to Azure storage and restore database. Support for .bak files since SQL Server 2008R2.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:279}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;SQL Agent Included&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:279}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Your jobs, schedules, and routines work the way they do today.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:279}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Up to 500 databases&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:279}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;With Next-Gen General Purpose tier you can get up to 500 databases.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:279}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;64GB of data and backup storage&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:279}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Your database is automatically backed for up to 7 days without by default, and you can store up to 64GB of data.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:279}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Automatic Patching and HA&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:279}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;You keep the SQL Server experience you know, without maintaining OS/VMs.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;201341983&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:279}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;H1&gt;&amp;nbsp;Frequently Asked Questions (FAQs)&lt;/H1&gt;
&lt;OL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1)" data-font="" data-listid="11" data-list-defn-props="{&amp;quot;134224900&amp;quot;:true,&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1)&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;What’s the duration of free offer?&lt;/SPAN&gt;&lt;/STRONG&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1)" data-font="" data-listid="11" data-list-defn-props="{&amp;quot;134224900&amp;quot;:true,&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1)&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;Free Azure SQL Managed Instance offer is available for 12 months since the day of activation for that subscription.&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1)" data-font="" data-listid="11" data-list-defn-props="{&amp;quot;134224900&amp;quot;:true,&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1)&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;Free Azure SQL Database offer is available for up to 10 databases per subscription for lifetime.&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;335559685&amp;quot;:720}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1)" data-font="" data-listid="11" data-list-defn-props="{&amp;quot;134224900&amp;quot;:true,&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1)&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;STRONG&gt;What happens after the free period?&lt;/STRONG&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1)" data-font="" data-listid="11" data-list-defn-props="{&amp;quot;134224900&amp;quot;:true,&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1)&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;Free SQL managed instance will be stopped and you’ll have an option to upgrade it to paid for 30 days. Afterwards it’ll be deleted.&lt;SPAN style="color: rgb(30, 30, 30);"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1)" data-font="" data-listid="11" data-list-defn-props="{&amp;quot;134224900&amp;quot;:true,&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1)&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;Free SQL database will be a&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;uto-paused until next month unless you explicitly set &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;“&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;Continue using database for additional charges&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;” option for “&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;free limit reached&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;” behavior. &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;201341983&amp;quot;:0,&amp;quot;335551550&amp;quot;:1,&amp;quot;335551620&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559737&amp;quot;:0,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:279,&amp;quot;335559991&amp;quot;:360}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI style="font-weight: bold;" aria-setsize="-1" data-leveltext="%1)" data-font="" data-listid="11" data-list-defn-props="{&amp;quot;134224900&amp;quot;:true,&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1)&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;STRONG style="font-weight: bold;"&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{&amp;quot;134233117&amp;quot;:false,&amp;quot;134233118&amp;quot;:false,&amp;quot;201341983&amp;quot;:0,&amp;quot;335551550&amp;quot;:1,&amp;quot;335551620&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559737&amp;quot;:0,&amp;quot;335559738&amp;quot;:0,&amp;quot;335559739&amp;quot;:160,&amp;quot;335559740&amp;quot;:279,&amp;quot;335559991&amp;quot;:360}"&gt;What are the limitations?&lt;/SPAN&gt;&lt;/STRONG&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1)" data-font="" data-listid="11" data-list-defn-props="{&amp;quot;134224900&amp;quot;:true,&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1)&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;Visit &lt;A class="lia-external-url" style="font-style: normal; font-weight: 400; background-color: rgb(255, 255, 255);" href="https://learn.microsoft.com/azure/azure-sql/database/free-offer?view=azuresql#offer-limitations" target="_blank" rel="noopener"&gt;free Azure SQL DB offer limitations page&lt;/A&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1)" data-font="" data-listid="11" data-list-defn-props="{&amp;quot;134224900&amp;quot;:true,&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1)&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{}"&gt;&lt;SPAN data-contrast="auto"&gt;Visit &lt;/SPAN&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/azure-sql/managed-instance/free-offer?view=azuresql#free-offer-limits" target="_blank" rel="noopener"&gt; free Azure SQL Managed Instance offer limitations page&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1)" data-font="" data-listid="11" data-list-defn-props="{&amp;quot;134224900&amp;quot;:true,&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1)&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;STRONG&gt;What are the prices for paid Azure SQL SKUs?&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt; &lt;BR /&gt;&lt;/SPAN&gt;Regular prices for Azure SQL services can vary&lt;SPAN style="color: rgb(30, 30, 30);" data-contrast="auto"&gt; depending on the region, compute model, SQL license and service tier. For more precise information visit:&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{}"&gt; &lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1)" data-font="" data-listid="11" data-list-defn-props="{&amp;quot;134224900&amp;quot;:true,&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1)&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;A class="lia-external-url" style="font-style: normal; font-weight: 400; background-color: rgb(255, 255, 255);" href="https://azure.microsoft.com/pricing/details/azure-sql-managed-instance/single/#pricing" target="_blank" rel="noopener"&gt;Azure SQL Managed Instance pricing&lt;/A&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{}"&gt; &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI aria-setsize="-1" data-leveltext="%1)" data-font="" data-listid="11" data-list-defn-props="{&amp;quot;134224900&amp;quot;:true,&amp;quot;335552541&amp;quot;:0,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769242&amp;quot;:[65533,0],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;%1)&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;hybridMultilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;A class="lia-external-url" style="font-style: normal; font-weight: 400; background-color: rgb(255, 255, 255);" href="https://azure.microsoft.com/pricing/details/azure-sql-database/single/#pricing" target="_blank" rel="noopener"&gt;Azure SQL Database pricing&lt;/A&gt;&lt;SPAN style="color: rgb(30, 30, 30);" data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;H1&gt;Closing&lt;/H1&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Whether you’re building something new or bringing an existing SQL Server workload to the cloud, Azure SQL gives you a way to start free, safely, and on your own terms. No risk, no pressure – just the same familiar SQL experience, with less overhead and more room to grow.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN data-contrast="auto"&gt;Want to get started with free Azure SQL offers?&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Learn more about the &lt;/SPAN&gt;&lt;A class="lia-external-url" href="https://aka.ms/freesqldb" target="_blank" rel="noopener"&gt;free Azure SQL Database offer&lt;/A&gt;&lt;SPAN data-contrast="auto"&gt; if you’re building new or serverless workloads.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:720,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;multilevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;Learn more about the &lt;/SPAN&gt;&lt;A class="lia-external-url" href="https://aka.ms/freesqlmi" target="_blank" rel="noopener"&gt;free Azure SQL Managed Instance offer&lt;/A&gt; &lt;SPAN data-contrast="auto"&gt;if you want to test your existing SQL Server workloads in the cloud.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Wed, 19 Nov 2025 16:56:31 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-sql-blog/how-to-get-a-free-azure-sql-database-or-managed-instance/ba-p/4471390</guid>
      <dc:creator>StrahinjaRodic</dc:creator>
      <dc:date>2025-11-19T16:56:31Z</dc:date>
    </item>
    <item>
      <title>Announcing Public Preview: Auditing for Fabric SQL Database</title>
      <link>https://techcommunity.microsoft.com/t5/azure-sql-blog/announcing-public-preview-auditing-for-fabric-sql-database/ba-p/4466803</link>
      <description>&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;We’re excited to announce the public preview of Auditing for Fabric SQL Database—a powerful feature designed to help organizations strengthen security, ensure compliance, and gain deep operational insights into their data environments.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;Why Auditing Matters&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:480,&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Auditing is a cornerstone of data governance. With&amp;nbsp;Fabric SQL Database&amp;nbsp;auditing, you can now easily track and log database activities—answering critical questions like who accessed what data, when, and how. This supports compliance requirements (such as HIPAA and SOX), enables robust threat detection, and provides a foundation for forensic investigations.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;Key Highlights&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:480,&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:360,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;singleLevel&amp;quot;}" data-aria-posinset="1" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-parastyle="List Bullet"&gt;Flexible Configuration: Choose from default “audit everything,” preconfigured scenarios (like permission changes, login attempts, data reads/writes, schema changes), or define custom action groups and predicate filters for advanced needs.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:360,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;singleLevel&amp;quot;}" data-aria-posinset="2" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-parastyle="List Bullet"&gt;Seamless Access: Audit logs are stored in One Lake, making them easily accessible via T-SQL or One Lake Explorer.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:360,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;singleLevel&amp;quot;}" data-aria-posinset="3" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-parastyle="List Bullet"&gt;Role-Based Access Control: Configuration and log access are governed by both Fabric workspace roles and SQL-level permissions, ensuring only authorized users can view or manage audit data.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:360,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;singleLevel&amp;quot;}" data-aria-posinset="4" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-parastyle="List Bullet"&gt;Retention Settings: Customize how long audit logs are retained to meet your organization’s policy.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;How It Works&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:480,&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;Audit logs are written to a secure, read-only folder in One Lake and can be queried using the sys. fn_get_audit_file_v2 T-SQL function. Workspace and artifact IDs are used as identifiers, ensuring logs remain consistent even if databases move across logical servers. Access controls at both the workspace and SQL database level ensure only the right people can configure or view audit logs.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;Example Use Cases&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:480,&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:360,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;singleLevel&amp;quot;}" data-aria-posinset="5" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-parastyle="List Bullet"&gt;Compliance Monitoring: Validate a full audit trail for regulatory requirements.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:360,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;singleLevel&amp;quot;}" data-aria-posinset="6" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-parastyle="List Bullet"&gt;Security Investigations: Track specific events like permission changes or&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="List Bullet"&gt;failed login attempts&lt;/SPAN&gt;&lt;SPAN data-ccp-parastyle="List Bullet"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:360,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;singleLevel&amp;quot;}" data-aria-posinset="7" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-parastyle="List Bullet"&gt;Operational Insights: Focus on specific operations (e.g., DML only) or test retention policies.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;UL&gt;
&lt;LI aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&amp;quot;335552541&amp;quot;:1,&amp;quot;335559685&amp;quot;:360,&amp;quot;335559991&amp;quot;:360,&amp;quot;469769226&amp;quot;:&amp;quot;Symbol&amp;quot;,&amp;quot;469769242&amp;quot;:[8226],&amp;quot;469777803&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;469777804&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;469777815&amp;quot;:&amp;quot;singleLevel&amp;quot;}" data-aria-posinset="8" data-aria-level="1"&gt;&lt;SPAN data-contrast="auto"&gt;&lt;SPAN data-ccp-parastyle="List Bullet"&gt;Role-Based Access: Verify audit visibility across different user roles.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P aria-level="1"&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;Getting Started&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{&amp;quot;134245418&amp;quot;:true,&amp;quot;134245529&amp;quot;:true,&amp;quot;335559738&amp;quot;:480,&amp;quot;335559739&amp;quot;:0}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="auto"&gt;You can configure auditing directly from the Manage&amp;nbsp;SQL Auditing&amp;nbsp;blade in the Fabric Portal. Choose your preferred scenario, set retention, and (optionally) define custom filters—all through a simple, intuitive interface.&lt;/SPAN&gt;&lt;SPAN data-ccp-props="{}"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{}"&gt;Learn more about auditing for Fabric SQL database &lt;A class="lia-external-url" href="https://learn.microsoft.com/fabric/database/sql/auditing" target="_blank"&gt;here&amp;nbsp;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-ccp-props="{}"&gt;Data exposed session with demo &lt;A class="lia-external-url" href="https://youtu.be/dxUsmfYqBAI?si=K5MYjFtEYbNnwetU" target="_blank"&gt;here&amp;nbsp;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN data-contrast="none"&gt;&lt;SPAN data-ccp-parastyle="heading 1"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 18 Nov 2025 17:33:47 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-sql-blog/announcing-public-preview-auditing-for-fabric-sql-database/ba-p/4466803</guid>
      <dc:creator>sravani-saluru</dc:creator>
      <dc:date>2025-11-18T17:33:47Z</dc:date>
    </item>
    <item>
      <title>Generally Available: Azure SQL Managed Instance Next-gen General Purpose</title>
      <link>https://techcommunity.microsoft.com/t5/azure-sql-blog/generally-available-azure-sql-managed-instance-next-gen-general/ba-p/4470970</link>
      <description>&lt;H2&gt;Overview&lt;/H2&gt;
&lt;P&gt;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/introducing-azure-sql-managed-instance-next-gen-gp/4092647" target="_blank" rel="noopener"&gt;Next-gen General Purpose&lt;/A&gt; is the evolution of General Purpose service tier that brings significantly improved performance and scalability to power up your existing Azure SQL Managed Instance fleet and helps you bring more mission-critical SQL workloads to Azure. We are happy to announce that Next-gen General Purpose is now&amp;nbsp;&lt;STRONG&gt;Generally Available (GA)&lt;/STRONG&gt; delivering even more scalability, flexibility, and value for organizations looking to modernize their data platform in a cost-effective way.&lt;/P&gt;
&lt;P&gt;The new #SQLMINextGen General Purpose tier delivers a built-in performance upgrade available to all customers at no extra cost. If you are an existing SQL MI General Purpose user, you get faster I/O, higher database density, and expanded storage - automatically.&lt;/P&gt;
&lt;H3&gt;Summary Table: Key Improvements&lt;/H3&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Capability&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Current GP&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Next-gen GP&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Improvement&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Average I/O Latency&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;5-10 ms&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;3-4 ms&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;2x lower&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Max Data IOPS&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;30-50k&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;80k&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;60% better&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Max Storage&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;16 TB&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;32 TB&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;2x better&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Max Databases/Instance&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;100&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;500&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;5x better&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Max vCores&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;80&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;128&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;40% better&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;But that’s just the beginning. &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The new configuration sliders for additional IOPS and memory provide enhanced flexibility to tailor performance according to your requirements. Whether you require more resources for your application or seek to optimize resource utilization, you can adjust your instance settings to maximize efficiency and output.&lt;/P&gt;
&lt;P&gt;This release isn’t just about speed - It’s about giving you improved performance where it matters, and mechanisms to go further when you need them.&lt;/P&gt;
&lt;img /&gt;
&lt;BLOCKQUOTE&gt;
&lt;H4&gt;&lt;STRONG&gt;Customer story - &lt;/STRONG&gt;A recent customer case highlights how &lt;A href="https://www.microsoft.com/en/customers/story/25083-hexure-azure-sql-managed-instance" target="_blank" rel="noopener"&gt;Hexure reduced processing time by up to 97.2% using Azure SQL Managed Instance&lt;/A&gt; on Next-gen General Purpose.&lt;/H4&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H2&gt;What’s new in Next-gen General Purpose (Nov 2025)?&lt;/H2&gt;
&lt;H3&gt;1. Improved baseline performance with the latest storage tech&lt;/H3&gt;
&lt;P&gt;Azure SQL Managed Instance is built on Intel® Xeon® processors, ensuring a strong foundation for enterprise workloads. With the next-generation General Purpose tier, we’ve paired Intel’s proven compute power with advanced storage technology to deliver faster performance, greater scalability, and enhanced flexibility - helping you run more efficiently and adapt to growing business needs.&lt;/P&gt;
&lt;P&gt;The SQL Managed Instance General Purpose tier is designed with full separation of compute and storage layers. The Classic GP version uses premium page blobs for the storage layer, while the Next-generation GP tier has transitioned to Azure’s latest storage solution, Elastic SAN.&amp;nbsp;&lt;A href="https://azure.microsoft.com/en-us/products/storage/elastic-san/" target="_blank" rel="noopener"&gt;Azure Elastic SAN&lt;/A&gt; is a cloud-native storage service that offers high performance and excellent scalability, making it a perfect fit for the storage layer of a data-intensive PaaS service like Azure SQL Managed Instance.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Simplified Performance Management&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;With ESAN as the storage layer, the performance quotas for the Next-gen General Purpose tier are no longer enforced for each database file. The entire performance quota for the instance is shared across all the database files, making performance management much easier (one fewer thing to worry about). This adjustment brings the General Purpose tier into alignment with the Business Critical service tier experience.&lt;/P&gt;
&lt;H3&gt;2. Resource flexibility and cost optimization&lt;/H3&gt;
&lt;P&gt;The GA of Next-gen General Purpose comes together with the GA of a transformative memory slider, enabling up to 49 memory configurations per instance. This lets you right-size workloads for both performance and cost. Memory is billed only for the additional amount beyond the default allocation. Users can independently configure vCores, memory, and IOPS for optimal efficiency.&lt;/P&gt;
&lt;P&gt;To learn more about the new option for configuring additional memory, check the article: &lt;A href="https://aka.ms/sqlmi-add-mem-blog" target="_blank" rel="noopener"&gt;Unlocking More Power with Flexible Memory in Azure SQL Managed Instance.&lt;/A&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;3. Enhanced resource elasticity through decoupled compute and storage scaling operations&lt;/H3&gt;
&lt;P&gt;With Next-gen GP, both storage and IOPS can be resized independently of the compute infrastructure, and these changes now typically finish within five minutes - a process known as an in-place upgrade. There are three distinct types of storage upgrade experiences depending on the kind of storage upgrade performed and whether failover occurs.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;In-place update: same storage (no data copy), same compute (no failover)&lt;/LI&gt;
&lt;LI&gt;Storage re-attach: Same storage (no data copy), changed compute (with failover)&lt;/LI&gt;
&lt;LI&gt;Data copy: Changed storage (data copy), changed compute (with failover)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The following matrix describes user experience with management operations:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Operation&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Data copying&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Failover&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;&lt;STRONG&gt;Storage upgrade type&lt;/STRONG&gt;&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;IOPS scaling&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;No&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;No&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;In-place&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Storage scaling*&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;No*&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;No&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;In-place&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;vCores scaling&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;No&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Yes**&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Re-attach&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Memory scaling&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;No&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Yes**&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Re-attach&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Maintenance Window change&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;No&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Yes**&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Re-attach&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Hardware change&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;No&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Yes**&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Re-attach&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;
&lt;P&gt;Update policy change&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Yes&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Yes&lt;/P&gt;
&lt;/td&gt;&lt;td&gt;
&lt;P&gt;Data copy&lt;/P&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;* If scale down is &amp;gt;5.5TB, seeding&lt;/P&gt;
&lt;P&gt;** In case of update operations that do not require seeding and are not completed in place (examples are scaling vCores, scaling memory, changing hardware or maintenance window), failover duration of databases on the Next-gen General Purpose service tier scales with the number of databases, up to 10 minutes. While the instance becomes available after 2 minutes, some databases might be available after a delay. Failover duration is measured from the moment when the first database goes offline, until the moment when the last database comes online.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Furthermore, resizing vCores and memory is now 50% faster following the introduction of the &lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/faster-management-operations-in-azure-sql-managed-instance/4425160" target="_blank" rel="noopener"&gt;Faster scaling operations&lt;/A&gt; release.&lt;/P&gt;
&lt;P&gt;No matter if you have end-of-month peak periods, or there are ups and downs of usage during the weekdays and the weekend, with fast and reliable management operations, you can run multiple configurations over your instance and respond to peak usage periods in a cost-effective way.&lt;/P&gt;
&lt;H3&gt;4. Reserved instance (RI) pricing&lt;/H3&gt;
&lt;P&gt;With &lt;A href="https://learn.microsoft.com/azure/azure-sql/database/reservations-discount-overview?view=azuresql" target="_blank" rel="noopener"&gt;Azure Reservations&lt;/A&gt;, you can commit to using Azure SQL resources for either one or three years, which lets you benefit from substantial discounts on compute costs. When purchasing a reservation, you'll need to choose the Azure region, deployment type, performance tier, and reservation term.&lt;/P&gt;
&lt;P&gt;Reservations are only available for products that have reached general availability (GA), and with this update, next-generation GP instances now qualify as well. What's even better is that classic and next-gen GP share the same SKU, just with different remote storage types. This means any reservations you've purchased automatically apply to Next-gen GP, whether you're upgrading an existing classic GP instance or creating a new one.&lt;/P&gt;
&lt;H2&gt;What’s Next?&lt;/H2&gt;
&lt;P&gt;The product group has received considerable positive feedback and welcomes continued input. The initial release will not include zonal redundancy; however, efforts are underway to address this limitation. Next-generation General Purpose (GP) represents the future of the service tier, and all existing classic GP instances will be upgraded accordingly. Once upgrade plans are finalized, we will provide timely communication regarding the announcement.&lt;/P&gt;
&lt;H2&gt;Conclusion&lt;/H2&gt;
&lt;P&gt;Now in GA, Next-gen General Purpose sets a new standard for cloud database performance and flexibility. Whether you’re modernizing legacy applications, consolidating workloads, or building for the future, these enhancements put more power, scalability, and control in your hands - without breaking the bank. &amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you haven’t already, try out the Next-gen General Purpose capabilities for free with &lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/free-sql-managed-instance-offer-is-now-generally-available/4415664" target="_blank" rel="noopener"&gt;Azure SQL Managed Instance free offer&lt;/A&gt;. For users operating SQL Managed Instance on the General Purpose tier, it is recommended to consider upgrading existing instances to leverage the advantages of next-gen upgrade – for free.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Welcome to #SQLMINextGen.&lt;/P&gt;
&lt;P&gt;Boosted by default. Tuned by you.&lt;/P&gt;
&lt;H2&gt;Learn more&lt;/H2&gt;
&lt;P&gt;&lt;A href="https://learn.microsoft.com/azure/azure-sql/managed-instance/sql-managed-instance-paas-overview?view=azuresql" target="_blank" rel="noopener"&gt;What is Azure SQL Managed Instance&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://aka.ms/SQLMIFreemium" target="_blank" rel="noopener"&gt;Try Azure SQL Managed Instance for free&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://aka.ms/mi-next-gen-gp-docs" target="_blank" rel="noopener"&gt;Next-gen General Purpose – official documentation&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.techtarget.com/hub/asset/1743607110_113" target="_blank" rel="noopener"&gt;Analyzing the Economic Benefits of Microsoft Azure SQL Managed Instance&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.microsoft.com/en-us/sql-server/blog/2025/10/20/innovation-spotlight-how-3-customers-are-driving-change-with-migration-to-azure-sql/" target="_blank" rel="noopener"&gt;How 3 customers are driving change with migration to Azure SQL&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.microsoft.com/en-us/sql-server/blog/2025/07/17/accelerate-sql-server-migration-to-azure-with-azure-arc/" target="_blank" rel="noopener"&gt;Accelerate SQL Server Migration to Azure with Azure Arc&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 02 Dec 2025 22:26:11 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-sql-blog/generally-available-azure-sql-managed-instance-next-gen-general/ba-p/4470970</guid>
      <dc:creator>UrosMilanovic</dc:creator>
      <dc:date>2025-12-02T22:26:11Z</dc:date>
    </item>
    <item>
      <title>Stream data in near real time from SQL to Azure Event Hubs - Public preview</title>
      <link>https://techcommunity.microsoft.com/t5/azure-sql-blog/stream-data-in-near-real-time-from-sql-to-azure-event-hubs/ba-p/4470724</link>
      <description>&lt;P&gt;If near-real time integration is something you are looking to implement and you were looking for a simpler way to get the data out of SQL, keep reading. SQL is making it easier to integrate and &lt;STRONG&gt;Change Event Streaming&lt;/STRONG&gt; is a feature continuing this trend.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Modern applications and analytics platforms increasingly rely on&amp;nbsp;&lt;STRONG&gt;event-driven architectures&lt;/STRONG&gt; and &lt;STRONG&gt;real-time data pipelines&lt;/STRONG&gt;. As the businesses speed up, real time decisioning is becoming especially important. Traditionally, capturing changes from a relational database requires complex ETL jobs, periodic polling, or third-party tools. These approaches often consume significant cycles of the data source, introduce operational overhead, and pose challenges with scalability, especially if you need one data source to feed into multiple destinations.&lt;/P&gt;
&lt;P&gt;In this context, we are happy to release &lt;STRONG&gt;Change Event Streaming&lt;/STRONG&gt; &lt;STRONG&gt;("CES")&lt;/STRONG&gt; feature into Public Preview for Azure SQL Database. This feature enables you to stream row-level changes - &lt;STRONG&gt;inserts, updates, and deletes -&amp;nbsp;&lt;/STRONG&gt;from your database directly to &lt;STRONG&gt;Azure Event Hubs&lt;/STRONG&gt; in near real time.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Change Event Streaming addresses the above challenges by:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Reducing latency&lt;/STRONG&gt;: Changes are streamed (pushed by SQL) as they happen. This is in contrast with traditional CDC (change data capture) or CT (change tracking) based approaches, where an external component needs to poll SQL at regular intervals. Traditional approaches allow you to increase polling frequency, but it gets difficult to find a sweet spot between minimal latency and minimal overhead due to too frequent polls.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Simplifying architecture&lt;/STRONG&gt;: No need for Change Data Capture (CDC), Change Tracking, custom polling or external connectors - SQL streams directly to configured destination. This means simpler security profile (fewer authentication points), fewer failure points, easier monitoring, lower skill bar to deploy and run the service. No need to worry about cleanup jobs, etc. SQL keeps track of which changes are successfully received by the destination, handles the retry logic and releases log truncation point. Finally, with CES you have fewer components to procure and get approved for production use.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Decoupling&lt;/STRONG&gt;: The integration is done on the database level. This eliminates the problem of dual writes - the changes are streamed at transaction boundaries, once your source of truth (the database) has saved the changes. You do not need to modify your app workloads to get the data streamed - you tap right onto the data layer - this is useful if your apps are dated and do not possess real-time integration capabilities. In case of some 3rd party apps, you may not even have an option to do anything other than database level integration, and CES makes it simpler. Also, the publishing database does not concern itself with the final destination for the data - Stream the data once to the common message bus, and you can consume it by multiple downstream systems, irrespective of their number or capacity - the (number of) consumers does not affect publishing load on the SQL side. Serving consumers is handled by the message bus, Azure Event Hubs, which is purpose built for high throughput data transfers.&lt;/LI&gt;
&lt;/UL&gt;
&lt;img&gt;A diagram conceptually visualizing data flow from SQL Server, with an arrow towards Azure Event Hubs, from where a number of arrows point to different final destinations.&lt;/img&gt;
&lt;H4&gt;&lt;STRONG&gt;Key Scenarios for CES&lt;/STRONG&gt;&lt;/H4&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Event-driven microservices&lt;/STRONG&gt;: They need to exchange data, typically thru a common message bus. With CES, you can have automated data publishing from each of the microservices. This allows you to trigger business processes immediately when data changes.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Real-time analytics&lt;/STRONG&gt;: Stream operational data into platforms like Fabric Real Time Intelligence or Azure Stream Analytics for quick insights.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Breaking down the monoliths:&lt;/STRONG&gt; Typical monolithic systems with complex schemas, sitting on top of a single database can be broken down one piece at a time: create a new component (typically a microservice), set up the streaming from the relevant tables on the monolith database and tap into the stream by the new components. You can then test run the components, validate the results against the original monolith, and cutover when you build the confidence that the new component is stable.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Cache and search index updates&lt;/STRONG&gt;: Keep distributed caches and search indexes in sync without custom triggers.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Data lake ingestion&lt;/STRONG&gt;: Capture changes continuously into storage for incremental processing.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Data availability:&lt;/STRONG&gt; This is not a &lt;EM&gt;scenario per se&lt;/EM&gt;, but the amount of data you can tap into for business process mining or intelligence in general goes up whenever you plug another database into the message bus. E.g. You plug in your eCommerce system to the message bus to integrate with Shipping providers, and consequently, the same data stream is immediately available for any other systems to tap into.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;&lt;STRONG&gt;How It Works&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;CES uses &lt;STRONG&gt;transaction log-based capture&lt;/STRONG&gt; to stream changes with minimal impact on your workload. Events are published in a structured JSON format following the &lt;A class="lia-external-url" href="https://github.com/cloudevents/spec" target="_blank" rel="noopener"&gt;CloudEvents&lt;/A&gt; standard, including operation type, primary key, and before/after values. You can configure CES to target&amp;nbsp;&lt;STRONG&gt;Azure Event Hubs&lt;/STRONG&gt; via &lt;STRONG&gt;AMQP &lt;/STRONG&gt;or &lt;STRONG&gt;Kafka &lt;/STRONG&gt;protocols.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For details on configuration, message format, and FAQs, see the official documentation:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/sql/relational-databases/track-changes/change-event-streaming/overview?view=sql-server-ver17&amp;amp;ref=ignite-blog" target="_blank" rel="noopener"&gt;Feature Overview&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/sql/relational-databases/track-changes/change-event-streaming/frequently-asked-questions-faq?view=sql-server-ver17&amp;amp;ref=ignite-blog" target="_blank" rel="noopener"&gt;CES: Frequently Asked Questions&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H4&gt;&lt;STRONG&gt;Get Started&lt;/STRONG&gt;&lt;/H4&gt;
&lt;H5&gt;Public preview&lt;/H5&gt;
&lt;P&gt;CES is available today in &lt;STRONG&gt;public preview&lt;/STRONG&gt; for &lt;STRONG&gt;Azure SQL Database &lt;/STRONG&gt;and as a&lt;STRONG&gt; preview feature &lt;/STRONG&gt;in&lt;STRONG&gt; SQL Server 2025&lt;/STRONG&gt;.&lt;/P&gt;
&lt;H5&gt;Private preview&lt;/H5&gt;
&lt;P&gt;CES is also available as a &lt;STRONG&gt;private preview&lt;/STRONG&gt; for &lt;STRONG&gt;Azure SQL Managed Instance&lt;/STRONG&gt; and &lt;STRONG&gt;Fabric SQL database&lt;/STRONG&gt;: you can request to join the private preview by signing up here: &lt;A class="lia-external-url" href="https://aka.ms/sql-ces-signup" target="_blank" rel="noopener"&gt;https://aka.ms/sql-ces-signup&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We encourage you to try the feature out and start building real-time integrations on top of your existing data. We welcome your feedback—please share your experience through Azure Feedback portal or support channels. The comments below on this blog post will also be monitored, if you want to engage with us. Finally, CES team can be reached via email:&lt;STRONG&gt; &lt;/STRONG&gt;sqlcesfeedback [at] microsoft [dot] com.&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;Useful resources&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;Free&amp;nbsp;&lt;A href="https://learn.microsoft.com/azure/azure-sql/database/free-offer?view=azuresql" target="_blank" rel="noopener"&gt;Azure SQL Database&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Free&amp;nbsp;&lt;A href="https://learn.microsoft.com/azure/azure-sql/managed-instance/free-offer?view=azuresql" target="_blank" rel="noopener"&gt;Azure SQL Managed Instance&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Wed, 19 Nov 2025 21:14:03 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-sql-blog/stream-data-in-near-real-time-from-sql-to-azure-event-hubs/ba-p/4470724</guid>
      <dc:creator>NikolaZagorac</dc:creator>
      <dc:date>2025-11-19T21:14:03Z</dc:date>
    </item>
    <item>
      <title>General Availability Announcement: Regex Support in SQL Server 2025 &amp; Azure SQL</title>
      <link>https://techcommunity.microsoft.com/t5/azure-sql-blog/general-availability-announcement-regex-support-in-sql-server/ba-p/4470684</link>
      <description>&lt;P&gt;We’re excited to announce the&amp;nbsp;&lt;STRONG&gt;General Availability (GA)&lt;/STRONG&gt;&amp;nbsp;of&amp;nbsp;&lt;STRONG&gt;native Regex support&lt;/STRONG&gt;&amp;nbsp;in&amp;nbsp;&lt;STRONG&gt;SQL Server 2025&lt;/STRONG&gt;&amp;nbsp;and&amp;nbsp;&lt;STRONG&gt;Azure SQL&lt;/STRONG&gt; — a long-awaited capability that brings powerful pattern matching directly into T-SQL. This release marks a significant milestone in modernizing string operations and enabling advanced text processing scenarios natively within the database engine.&lt;/P&gt;
&lt;H2&gt;What is Regex?&lt;/H2&gt;
&lt;P&gt;The other day, while building LEGO with my 3-year-old — an activity that’s equal parts joy and chaos — I spent minutes digging for one tiny piece and thought, “&lt;EM&gt;If only Regex worked on LEGO.&lt;/EM&gt;”&lt;/P&gt;
&lt;P&gt;That moment of playful frustration turned into a perfect metaphor.&lt;/P&gt;
&lt;P&gt;Think of your LEGO box as a pile of data — a colorful jumble of tiny pieces. Now imagine trying to find every little brick from a specific LEGO set your kid mixed into the pile. That’s tricky — you’d have to sift through each piece one by one.&lt;/P&gt;
&lt;P&gt;But what if you had a&amp;nbsp;&lt;EM&gt;smart filter&lt;/EM&gt;&amp;nbsp;that instantly found exactly those pieces?&lt;/P&gt;
&lt;P&gt;That’s what&amp;nbsp;&lt;STRONG&gt;Regex&lt;/STRONG&gt;&amp;nbsp;(short for&amp;nbsp;&lt;STRONG&gt;Regular Expressions&lt;/STRONG&gt;) does for your data. It’s a powerful pattern-matching tool that helps you search, extract, and transform text with precision.&lt;/P&gt;
&lt;P&gt;With&amp;nbsp;&lt;STRONG&gt;Regex now natively supported in SQL Server 2025 and Azure SQL&lt;/STRONG&gt;, this capability is built directly into T-SQL — no external languages or workarounds required.&lt;/P&gt;
&lt;H2&gt;What can Regex help you do?&lt;/H2&gt;
&lt;P&gt;Regex can help you tackle a wide range of data challenges, including:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Enhancing data quality and accuracy&lt;/STRONG&gt;&amp;nbsp;by validating and correcting formats like phone numbers, email addresses, zip codes, and more.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Extracting valuable insights&lt;/STRONG&gt;&amp;nbsp;by identifying and grouping specific text patterns such as keywords, hashtags, or mentions.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Transforming and standardizing data&lt;/STRONG&gt;&amp;nbsp;by replacing, splitting, or joining text patterns — useful for handling abbreviations, acronyms, or synonyms.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Cleaning and optimizing data&lt;/STRONG&gt;&amp;nbsp;by removing unwanted patterns like extra whitespace, punctuation, or duplicates.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Meet the new Regex functions in T-SQL&lt;/H2&gt;
&lt;P&gt;SQL Server 2025 introduces&amp;nbsp;&lt;STRONG&gt;seven new T-SQL Regex functions&lt;/STRONG&gt;, grouped into two categories:&amp;nbsp;scalar functions (return a value per row) and table-valued functions (TVFs) (return a set of rows). Here’s a quick overview:&lt;/P&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Function&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;&lt;STRONG&gt;Type&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;&lt;STRONG&gt;Description&lt;/STRONG&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;REGEXP_LIKE&lt;/td&gt;&lt;td&gt;Scalar&lt;/td&gt;&lt;td&gt;Returns&amp;nbsp;TRUE&amp;nbsp;if the input string matches the Regex pattern&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;REGEXP_COUNT&lt;/td&gt;&lt;td&gt;Scalar&lt;/td&gt;&lt;td&gt;&amp;nbsp;Counts the number of times a pattern occurs in a string&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;REGEXP_INSTR&lt;/td&gt;&lt;td&gt;Scalar&lt;/td&gt;&lt;td&gt;&amp;nbsp;Returns the position of a pattern match within a string&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;REGEXP_REPLACE&lt;/td&gt;&lt;td&gt;Scalar&lt;/td&gt;&lt;td&gt;Replaces substrings that match a pattern with a replacement string&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;REGEXP_SUBSTR&lt;/td&gt;&lt;td&gt;Scalar&lt;/td&gt;&lt;td&gt;Extracts a substring that matches a pattern&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;REGEXP_MATCHES&lt;/td&gt;&lt;td&gt;TVF&lt;/td&gt;&lt;td&gt;Returns a table of all matches including substrings and their positions&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;REGEXP_SPLIT_TO_TABLE&lt;/td&gt;&lt;td&gt;TVF&lt;/td&gt;&lt;td&gt;Splits a string into rows using a Regex delimiter&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;P&gt;These functions follow the&amp;nbsp;&lt;STRONG&gt;POSIX standard&lt;/STRONG&gt;&amp;nbsp;and support most of the PCRE/PCRE2 flavor of regular expression syntax, making them compatible with most modern Regex engines and tools.&lt;/P&gt;
&lt;P&gt;They support common features like:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Character classes (\d,&amp;nbsp;\w, etc.)&lt;/LI&gt;
&lt;LI&gt;Quantifiers (+,&amp;nbsp;*,&amp;nbsp;{n})&lt;/LI&gt;
&lt;LI&gt;Alternation (|)&lt;/LI&gt;
&lt;LI&gt;Capture groups ((...))&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;You can also use&amp;nbsp;&lt;STRONG&gt;Regex flags&lt;/STRONG&gt;&amp;nbsp;to modify behavior:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;'i'&amp;nbsp;– Case-insensitive matching&lt;/LI&gt;
&lt;LI&gt;'m'&amp;nbsp;– Multi-line mode (^&amp;nbsp;and&amp;nbsp;$&amp;nbsp;match line boundaries)&lt;/LI&gt;
&lt;LI&gt;'s'&amp;nbsp;– Dot matches newline&lt;/LI&gt;
&lt;LI&gt;'c' – Case-sensitive matching (default)&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI-SPOILER label="Note"&gt;
&lt;P&gt;&lt;STRONG&gt;REGEXP_LIKE&lt;/STRONG&gt;,&amp;nbsp;&lt;STRONG&gt;REGEXP_MATCHES&lt;/STRONG&gt;&amp;nbsp;and&amp;nbsp;&lt;STRONG&gt;REGEXP_SPLIT_TO_TABLE&lt;/STRONG&gt;&amp;nbsp;functions are available only under compatibility level 170 and above. If your database compatibility level is lower than 170, SQL Server can’t find and run these functions. Other regular expression functions are available at all compatibility levels. You can check compatibility level in the&amp;nbsp;sys.databases&amp;nbsp;view or in database properties. You can change the compatibility level of a database with the following command:&lt;/P&gt;
&lt;PRE class="lia-code-sample line-numbers language-sql" contenteditable="false" data-lia-code-lang="sql" data-lia-code-value="ALTER DATABASE [DatabaseName] SET COMPATIBILITY_LEVEL = 170;"&gt;&lt;CODE&gt;ALTER DATABASE [DatabaseName] SET COMPATIBILITY_LEVEL = 170;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI-SPOILER&gt;
&lt;H2&gt;Examples: Regex in Action&lt;/H2&gt;
&lt;P&gt;Let’s explore how these functions solve tricky real-world data tasks that were hard to do in earlier SQL versions.&lt;/P&gt;
&lt;H3&gt;REGEXP_LIKE: Data Validation — Keeping data in shape&lt;/H3&gt;
&lt;P&gt;Validating formats like email addresses or phone numbers used to require multiple functions or external tools. With&amp;nbsp;REGEXP_LIKE, it’s now a concise query. For example, you can check whether an email contains valid characters before and after the&amp;nbsp;@, followed by a domain with at least two letters like&amp;nbsp;.com,&amp;nbsp;.org, or&amp;nbsp;.co.in.&lt;/P&gt;
&lt;LI-CODE lang="sql"&gt;SELECT [Name],
       Email,
       CASE WHEN REGEXP_LIKE (Email, '^[A-Za-z0-9._+]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$') THEN 'Valid Email' ELSE 'Invalid Email' END AS IsValidEmail
FROM   (VALUES ('John Doe', 'john@contoso.com'), ('Alice Smith', 'alice@fabrikam.com'), ('Bob Johnson', 'bob@fabrikam.net'), ('Charlie Brown', 'charlie@contoso.co.in'), ('Eve Jones', 'eve@@contoso.com')) AS e(Name, Email);&lt;/LI-CODE&gt;
&lt;P&gt;We can further use REGEXP_LIKE in&amp;nbsp;&lt;STRONG&gt;CHECK constraints&lt;/STRONG&gt;&amp;nbsp;to enforce these rules at the column level (so no invalid format ever gets into the table). For instance:&lt;/P&gt;
&lt;LI-CODE lang="sql"&gt;CREATE TABLE Employees (
    ...,
    Email VARCHAR (320) CHECK (REGEXP_LIKE (Email, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$')),
    Phone VARCHAR (20)  CHECK (REGEXP_LIKE (Phone, '^(\d{3})-(\d{3})-(\d{4})$'))
);&lt;/LI-CODE&gt;
&lt;P&gt;This level of enforcement significantly enhances data integrity by ensuring that only correctly formatted values are accepted into the database.&lt;/P&gt;
&lt;H3&gt;REGEXP_COUNT: Count JSON object keys&lt;/H3&gt;
&lt;P&gt;Count how many&amp;nbsp;&lt;STRONG&gt;top-level keys&lt;/STRONG&gt;&amp;nbsp;exist in a JSON string — no JSON parser needed!&lt;/P&gt;
&lt;LI-CODE lang="sql"&gt;SELECT JsonData,
       REGEXP_COUNT(JsonData, '"[^"]+"\s*:', 1, 'i') AS NumKeys
FROM   (VALUES ('{"name":"Abhiman","role":"PM","location":"Bengaluru"}'), ('{"skills":["SQL","T-SQL","Regex"],"level":"Advanced"}'), ('{"project":{"name":"Regex GA","status":"Live"},"team":["Tejas","UC"]}'), ('{"empty":{}}'), ('{}')) AS t(JsonData);&lt;/LI-CODE&gt;
&lt;H3&gt;REGEXP_INSTR: Locate patterns in logs&lt;/H3&gt;
&lt;P&gt;Find the&amp;nbsp;&lt;STRONG&gt;position&lt;/STRONG&gt;&amp;nbsp;of the first error code (ERR-XXXX) in log messages — even when the pattern appears multiple times or in varying locations.&lt;/P&gt;
&lt;LI-CODE lang="sql"&gt;SELECT LogMessage,
       REGEXP_INSTR(LogMessage, 'ERR-\d{4}', 1, 1, 0, 'i') AS ErrorCodePosition
FROM   (VALUES ('System initialized. ERR-1001 occurred during startup.'), ('Warning: Disk space low. ERR-2048. Retry failed. ERR-2049.'), ('No errors found.'), ('ERR-0001: Critical failure. ERR-0002: Recovery started.'), ('Startup complete. Monitoring active.')) AS t(LogMessage);&lt;/LI-CODE&gt;
&lt;H3&gt;REGEXP_REPLACE: Redact sensitive data&lt;/H3&gt;
&lt;P&gt;Mask SSNs and credit card numbers in logs or exports — all with a single, secure query.&lt;/P&gt;
&lt;LI-CODE lang="sql"&gt;SELECT sensitive_info,
       REGEXP_REPLACE(sensitive_info, '(\d{3}-\d{2}-\d{4}|\d{4}-\d{4}-\d{4}-\d{4})', '***-**-****') AS redacted_info
FROM   (VALUES ('John Doe SSN: 123-45-6789'), ('Credit Card: 9876-5432-1098-7654'), ('SSN: 000-00-0000 and Card: 1111-2222-3333-4444'), ('No sensitive info here'), ('Multiple SSNs: 111-22-3333, 222-33-4444'), ('Card: 1234-5678-9012-3456, SSN: 999-88-7777')) AS t(sensitive_info);&lt;/LI-CODE&gt;
&lt;H3&gt;REGEXP_SUBSTR: Extract and count email domains&lt;/H3&gt;
&lt;P&gt;Extract domains from email addresses and group users by domain.&lt;/P&gt;
&lt;LI-CODE lang="sql"&gt;SELECT   REGEXP_SUBSTR(Email, '@(.+)$', 1, 1, 'i', 1) AS Domain,
         COUNT(*) AS NumUsers
FROM     (VALUES ('Alice', 'alice@contoso.com'), ('Bob', 'bob@fabrikam.co.in'), ('Charlie', 'charlie@example.com'), ('Diana', 'diana@college.edu'), ('Eve', 'eve@contoso.com'), ('Frank', 'frank@fabrikam.co.in'), ('Grace', 'grace@example.net')) AS e(Name, Email)
WHERE    REGEXP_LIKE (Email, '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$')
GROUP BY REGEXP_SUBSTR(Email, '@(.+)$', 1, 1, 'i', 1);&lt;/LI-CODE&gt;
&lt;H3&gt;REGEXP_MATCHES: Extract multiple emails from text&lt;/H3&gt;
&lt;P&gt;Extract all email addresses from free-form text like comments or logs — returning each match as a separate row for easy parsing or analysis.&lt;/P&gt;
&lt;LI-CODE lang="sql"&gt;SELECT *
FROM   REGEXP_MATCHES ('Contact us at support@example.com or sales@example.com', '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}');&lt;/LI-CODE&gt;
&lt;P&gt;This query identifies and returns both email addresses found in the string — no need for loops, manual parsing, or external scripting.&lt;/P&gt;
&lt;H3&gt;REGEXP_SPLIT_TO_TABLE: Break down structured text&lt;/H3&gt;
&lt;P&gt;Split a string into rows using a Regex delimiter — ideal for parsing logs, config entries, or form data.&lt;/P&gt;
&lt;LI-CODE lang="sql"&gt;SELECT *
FROM   REGEXP_SPLIT_TO_TABLE ('Name: John Doe; Email: john.doe@example.com; Phone: 123-456-7890', '; ');&lt;/LI-CODE&gt;
&lt;P&gt;This query breaks the input string into rows for each field, making it easier to parse and process the data — especially when dealing with inconsistent or custom delimiters.&lt;/P&gt;
&lt;P&gt;To explore more examples, syntax options, and usage details, head over to the&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/sql/t-sql/functions/regular-expressions-functions-transact-sql?view=sql-server-ver17" target="_blank" rel="noopener"&gt;https://learn.microsoft.com/en-us/sql/t-sql/functions/regular-expressions-functions-transact-sql?view=sql-server-ver17&lt;/A&gt;.&lt;/P&gt;
&lt;LI-SPOILER label="Hint"&gt;
&lt;P&gt;Writing complex Regex patterns can be tricky. Let Copilot help you generate and test patterns based on your requirements — right inside your SQL editor. Try asking Copilot for regex patterns!&lt;/P&gt;
&lt;/LI-SPOILER&gt;
&lt;H2&gt;Conclusion&lt;/H2&gt;
&lt;P&gt;The addition of Regex functionality in SQL Server 2025 and Azure SQL is a major leap forward for developers and DBAs. It eliminates the need for external libraries, CLR integration, or complex workarounds for text processing.&lt;/P&gt;
&lt;P&gt;With Regex now built into T-SQL, you can:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Validate and enforce data formats&lt;/LI&gt;
&lt;LI&gt;Sanitize and transform sensitive data&lt;/LI&gt;
&lt;LI&gt;Search logs for complex patterns&lt;/LI&gt;
&lt;LI&gt;Extract and split structured content&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;And this is just the beginning. Regex opens the door to a whole new level of&amp;nbsp;&lt;STRONG&gt;data quality&lt;/STRONG&gt;,&amp;nbsp;&lt;STRONG&gt;text analytics&lt;/STRONG&gt;, and&amp;nbsp;&lt;STRONG&gt;developer productivity&lt;/STRONG&gt;&amp;nbsp;— all within the database engine. So go ahead and&amp;nbsp;&lt;STRONG&gt;Regex away&lt;/STRONG&gt;!&lt;/P&gt;
&lt;P&gt;Your feedback and partnership continue to drive innovation in Azure SQL and SQL Server — thank you for being part of it.&lt;/P&gt;</description>
      <pubDate>Tue, 18 Nov 2025 16:05:57 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-sql-blog/general-availability-announcement-regex-support-in-sql-server/ba-p/4470684</guid>
      <dc:creator>abhimantiwari</dc:creator>
      <dc:date>2025-11-18T16:05:57Z</dc:date>
    </item>
    <item>
      <title>Securing Azure SQL Database with Microsoft Entra Password-less Authentication: Migration Guide</title>
      <link>https://techcommunity.microsoft.com/t5/azure-sql-blog/securing-azure-sql-database-with-microsoft-entra-password-less/ba-p/4470734</link>
      <description>&lt;P&gt;The&amp;nbsp;&lt;A href="https://www.microsoft.com/en-us/trust-center/security/secure-future-initiative?msockid=11d49660e49266142767834be51c6790" target="_blank" rel="noopener"&gt;&lt;EM&gt;Secure Future Initiative &lt;/EM&gt;&lt;/A&gt;is Microsoft’s strategic framework for embedding security into every layer of the data platform—from infrastructure to identity. As part of this initiative, Microsoft Entra authentication for Azure SQL Database offers a modern, password less approach to access control that aligns with Zero Trust principles. By leveraging Entra identities, customers benefit from stronger security postures through multifactor authentication, centralized identity governance, and seamless integration with managed identities and service principals. Onboarding Entra authentication enables organizations to reduce reliance on passwords, simplify access management, and improve auditability across hybrid and cloud environments. With broad support across tools and platforms, and growing customer adoption, Entra authentication is a forward-looking investment in secure, scalable data access.&lt;/P&gt;
&lt;H1&gt;Migration Steps Overview&lt;/H1&gt;
&lt;P&gt;Organizations utilizing SQL authentication can strengthen database security by migrating to Entra Id-based authentication. The following steps outline the process.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Identify your logins and users – Review the existing SQL databases, along with all related users and logins, to assess what’s needed for migration.&lt;/LI&gt;
&lt;LI&gt;Enable Entra auth on Azure SQL logical servers by assigning a Microsoft Entra admin.&lt;/LI&gt;
&lt;LI&gt;Identify all permissions associated with the SQL logins &amp;amp; Database users.&lt;/LI&gt;
&lt;LI&gt;Recreate SQL logins and users with Microsoft Entra identities.&lt;/LI&gt;
&lt;LI&gt;Upgrade application drivers and libraries to min versions &amp;amp; update application connections to SQL Databases to use Entra based managed identities.&lt;/LI&gt;
&lt;LI&gt;Update deployments for SQL logical server resources to have Microsoft Entra-only authentication enabled.&lt;/LI&gt;
&lt;LI&gt;For all existing Azure SQL Databases, flip to Entra‑only after validation.&lt;/LI&gt;
&lt;LI&gt;Enforce Entra-only for all Azure SQL Databases with Azure Policies (deny).&lt;/LI&gt;
&lt;/OL&gt;
&lt;H1&gt;Step 1: Identify your logins and users - Use SQL Auditing&lt;/H1&gt;
&lt;P&gt;&lt;EM&gt;Consider using SQL Audit to monitor which identities are accessing your databases. Alternatively, you may use other methods or skip this step if you already have full visibility of all your logins.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Configure server‑level SQL Auditing. For more information on turning the server level auditing: &lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/configure-auditing-for-azure-sql-database-series---part1/3269758" target="_blank" rel="noopener"&gt;Configure Auditing for Azure SQL Database series - part1 | Microsoft Community Hub&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;SQL Audit can be enabled on the logical server, which will enable auditing for all existing and new user databases. When you set up auditing, the audit log will be written to your storage account with the&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/database/audit-log-format?view=azuresql#subheading-1" target="_blank" rel="noopener"&gt;SQL Database audit log format&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Use&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/sql/relational-databases/system-functions/sys-fn-get-audit-file-v2-transact-sql?view=sql-server-ver16&amp;amp;tabs=sqldb" target="_blank" rel="noopener"&gt;sys.fn_get_audit_file_v2&lt;/A&gt;&amp;nbsp;to query the audit logs in SQL. You can join the audit data with&amp;nbsp;sys.server_principals&amp;nbsp;and&amp;nbsp;sys.database_principals&amp;nbsp;to view users and logins connecting to your databases.&lt;/P&gt;
&lt;P&gt;The following query is an example of how to do this:&lt;/P&gt;
&lt;LI-CODE lang="sql"&gt;SELECT
(CASE WHEN database_principal_id &amp;gt; 0 THEN dp.type_desc ELSE NULL END) AS db_user_type
, (CASE WHEN server_principal_id &amp;gt; 0 THEN sp.type_desc ELSE NULL END) AS srv_login_type
, server_principal_name
, server_principal_sid
, server_principal_id
, database_principal_name
, database_principal_id
, database_name
, SUM(CASE WHEN succeeded = 1 THEN 1 ELSE 0 END) AS sucessful_logins
, SUM(CASE WHEN succeeded = 0 THEN 1 ELSE 0 END) AS failed_logins
FROM sys.fn_get_audit_file_v2(
    '&amp;lt;Storage_endpoint&amp;gt;/&amp;lt;Container&amp;gt;/&amp;lt;ServerName&amp;gt;',
    DEFAULT,
    DEFAULT,
    '2023-11-17T08:40:40Z',
    '2023-11-17T09:10:40Z')
-- join on database principals (users) metadata
LEFT OUTER JOIN sys.database_principals dp ON database_principal_id = dp.principal_id
-- join on server principals (logins) metadata
LEFT OUTER JOIN sys.server_principals sp ON server_principal_id = sp.principal_id 
-- filter to actions DBAF (Database Authentication Failed) and DBAS (Database Authentication Succeeded)
WHERE (action_id = 'DBAF' OR action_id = 'DBAS')
GROUP BY
  server_principal_name
, server_principal_sid
, server_principal_id
, database_principal_name
, database_principal_id
, database_name
, dp.type_desc
, sp.type_desc&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Step 2: Enable Microsoft Entra authentication (assign admin)&lt;/H1&gt;
&lt;P&gt;Follow &lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/database/authentication-aad-configure?view=azuresql&amp;amp;tabs=azure-portal" target="_blank" rel="noopener"&gt;this to enable Entra authentication&lt;/A&gt; and assign a Microsoft Entra admin at the server. This is mixed mode; existing SQL auth continues to work.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;WARNING: Do NOT enable Entra‑only (azureADOnlyAuthentications) yet. That comes in Step 7.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Entra admin Recommendation:&lt;/U&gt; For production environments, it is advisable to utilize an &lt;A href="https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/concept-pim-for-groups" target="_blank" rel="noopener"&gt;PIM Enabled Entra group&lt;/A&gt; as the server administrator for enhanced access control.&lt;/P&gt;
&lt;H1&gt;Step 3: Identity &amp;amp; document existing permissions (SQL Logins &amp;amp; Users)&lt;/H1&gt;
&lt;UL&gt;
&lt;LI&gt;Retrieve a list of all your SQL auth logins. Make sure to run on the master database.:&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI-CODE lang="sql"&gt;SELECT * FROM sys.sql_logins&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;List all SQL auth users, run the below query on all user Databases. This would list the users per Database.&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI-CODE lang="sql"&gt;SELECT * FROM sys.database_principals WHERE TYPE = 'S'&lt;/LI-CODE&gt;
&lt;P&gt;Note: You may need only the column ‘name’ to identify the users.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;List permissions per SQL auth user:&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI-CODE lang="sql"&gt;SELECT   database_principals.name 
       , database_principals.principal_id 
       , database_principals.type_desc 
       , database_permissions.permission_name 
       , CASE 
           WHEN class = 0 THEN 'DATABASE' 
           WHEN class = 3 THEN 'SCHEMA: ' + SCHEMA_NAME(major_id) 
           WHEN class = 4 THEN 'Database Principal: ' + USER_NAME(major_id) 
           ELSE OBJECT_SCHEMA_NAME(database_permissions.major_id) + '.' + OBJECT_NAME(database_permissions.major_id) 
           END AS object_name 
       , columns.name                    AS column_name 
       , database_permissions.state_desc AS permission_type 
FROM sys.database_principals             AS database_principals 
INNER JOIN sys.database_permissions      AS database_permissions   
    ON database_principals.principal_id = database_permissions.grantee_principal_id 
LEFT JOIN sys.columns                    AS columns   
    ON database_permissions.major_id = columns.object_id  
   AND database_permissions.minor_id = columns.column_id 
WHERE type_desc = 'SQL_USER' ORDER BY database_principals.name&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;Step 4: Create SQL users for your Microsoft Entra identities&lt;/H1&gt;
&lt;P&gt;&lt;EM&gt;You can create users(preferred) for all Entra identities.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Learn more on &lt;A href="https://learn.microsoft.com/en-us/sql/t-sql/statements/create-user-transact-sql" target="_blank" rel="noopener"&gt;Create user&lt;/A&gt; The "FROM EXTERNAL PROVIDER" clause in TSQL distinguishes Entra users from SQL authentication users.&lt;/P&gt;
&lt;P&gt;The most straightforward approach to adding Entra users is to use a &lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/database/authentication-azure-ad-user-assigned-managed-identity" target="_blank" rel="noopener"&gt;managed identity for Azure SQL&lt;/A&gt; and grant the &lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/database/authentication-azure-ad-user-assigned-managed-identity?view=azuresql#permissions" target="_blank" rel="noopener"&gt;required three Graph API permissions&lt;/A&gt;. These permissions are necessary for Azure SQL to validate Entra users.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/graph/permissions-reference#user-permissions" target="_blank" rel="noopener"&gt;User.Read.All&lt;/A&gt;: Allows access to Microsoft Entra user information.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/graph/permissions-reference#group-permissions" target="_blank" rel="noopener"&gt;GroupMember.Read.All&lt;/A&gt;: Allows access to Microsoft Entra group information.&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/graph/permissions-reference#application-resource-permissions" target="_blank" rel="noopener"&gt;Application.Read.ALL&lt;/A&gt;: Allows access to Microsoft Entra service principal (application) information.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;For creating Entra users with non-unique display names, &lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/database/authentication-microsoft-entra-create-users-with-nonunique-names" target="_blank" rel="noopener"&gt;use Object_Id&lt;/A&gt; in the Create User TSQL:&lt;/P&gt;
&lt;LI-CODE lang="sql"&gt;-- Retrieve the Object Id from the Entra blade from the Azure portal.
CREATE USER [myapp4466e] FROM EXTERNAL PROVIDER WITH OBJECT_ID = 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb'&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For more information on finding the Entra Object ID: &lt;A href="https://learn.microsoft.com/en-us/partner-center/account-settings/find-ids-and-domain-names#find-the-user-object-id" target="_blank" rel="noopener"&gt;Find tenant ID, domain name, user object ID - Partner Center | Microsoft Learn&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Alternatively, if granting these API permissions to SQL is undesirable, &lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/database/authentication-azure-ad-user-assigned-managed-identity?view=azuresql#permissions-for-smi" target="_blank" rel="noopener"&gt;you may add Entra users directly&lt;/A&gt; using the T-SQL commands provided below. In these scenarios, Azure SQL will bypass Entra user validation.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Create SQL user for managed identity or an application -&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;This T-SQL code snippet establishes a SQL user for an application or managed identity. Please substitute the `MSIname` and `clientId` (note: use the client id, not the object id), variables with the Display Name and Client ID of your managed identity or application.&lt;/EM&gt;&lt;/P&gt;
&lt;LI-CODE lang="sql"&gt;-- Replace the two variables with the managed identity display name and client ID
declare @MSIname sysname = '&amp;lt;Managed Identity/App Display Name&amp;gt;'
declare @clientId uniqueidentifier = '&amp;lt;Managed Identity/App Client ID&amp;gt;';

-- convert the guid to the right type and create the SQL user
declare @castClientId nvarchar(max) = CONVERT(varchar(max), convert (varbinary(16), @clientId), 1);

-- Construct command: CREATE USER [@MSIname] WITH SID = @castClientId, TYPE = E;
declare  nvarchar(max) = N'CREATE USER [' + @MSIname + '] WITH SID = ' + @castClientId + ', TYPE = E;'

EXEC (@cmd)&lt;/LI-CODE&gt;
&lt;P&gt;For more information on finding the Entra Client ID: &lt;A href="https://learn.microsoft.com/en-us/azure/healthcare-apis/register-application#application-id-client-id" target="_blank" rel="noopener"&gt;Register a client application in Microsoft Entra ID for the Azure Health Data Services | Microsoft Learn&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Create SQL user for Microsoft Entra user -&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Use this T-SQL to create a SQL user for a Microsoft Entra account. Enter your username and object Id:&lt;/EM&gt;&lt;/P&gt;
&lt;LI-CODE lang="sql"&gt;-- Replace the two variables with the MS Entra user alias and object ID
declare  sysname = '&amp;lt;MS Entra user alias&amp;gt;'; -- (e.g., username@contoso.com)
declare  uniqueidentifier = '&amp;lt;User Object ID&amp;gt;';

-- convert the guid to the right type
declare @castObjectId nvarchar(max) = CONVERT(varchar(max), convert (varbinary(16), ), 1);

-- Construct command: CREATE USER [@username] WITH SID = @castObjectId, TYPE = E;
declare  nvarchar(max) = N'CREATE USER [' +  + '] WITH SID = ' + @castObjectId + ', TYPE = E;'

EXEC (@cmd)
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Create SQL user for Microsoft Entra group -&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;This T-SQL snippet creates a SQL user for a Microsoft Entra group. Set groupName and object Id to your values.&lt;/EM&gt;&lt;/P&gt;
&lt;LI-CODE lang="sql"&gt;-- Replace the two variables with the MS Entra group display name and object ID
declare @groupName sysname = '&amp;lt;MS Entra group display name&amp;gt;'; -- (e.g., ContosoUsersGroup)
declare  uniqueidentifier = '&amp;lt;Group Object ID&amp;gt;';

-- convert the guid to the right type and create the SQL user
declare @castObjectId nvarchar(max) = CONVERT(varchar(max), convert (varbinary(16), ), 1);

-- Construct command: CREATE USER [@groupName] WITH SID = @castObjectId, TYPE = X;
declare  nvarchar(max) = N'CREATE USER [' + @groupName + '] WITH SID = ' + @castObjectId + ', TYPE = X;'

EXEC (@cmd)&lt;/LI-CODE&gt;
&lt;P&gt;For more information on finding the Entra Object ID: &lt;A href="https://learn.microsoft.com/en-us/partner-center/account-settings/find-ids-and-domain-names#find-the-user-object-id" target="_blank" rel="noopener"&gt;Find tenant ID, domain name, user object ID - Partner Center | Microsoft Learn&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Validate SQL user creation -&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;When a user is created correctly, the EntraID column in this query shows the user's original MS Entra ID.&lt;/EM&gt;&lt;/P&gt;
&lt;LI-CODE lang="sql"&gt;select CAST(sid as uniqueidentifier) AS EntraID, * from sys.database_principals&lt;/LI-CODE&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Assign permissions to Entra based users –&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;After creating Entra users, assign them SQL permissions to read or write by either &lt;A href="https://learn.microsoft.com/en-us/sql/t-sql/statements/grant-database-permissions-transact-sql" target="_blank" rel="noopener"&gt;using GRANT statements&lt;/A&gt; or &lt;A href="https://learn.microsoft.com/en-us/sql/relational-databases/security/authentication-access/database-level-roles?view=sql-server-ver16#a-add-a-user-to-a-database-level-role" target="_blank" rel="noopener"&gt;adding them to roles&lt;/A&gt; like db_datareader. Refer to your documentation from&amp;nbsp;&lt;STRONG&gt;&lt;EM&gt;Step 3&lt;/EM&gt;&lt;/STRONG&gt;, ensuring you include all necessary user permissions for new Entra SQL users and that security policies remain enforced.&lt;/P&gt;
&lt;H1&gt;Step 5: Update Programmatic Connections&lt;/H1&gt;
&lt;P&gt;&lt;EM&gt;Change your application connection strings to managed identities for SQL authentication and test each app for Microsoft Entra compatibility.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Upgrade your drivers to these versions or newer.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/sql/connect/jdbc/connecting-using-azure-active-directory-authentication?view=sql-server-ver16#connect-using-activedirectorymanagedidentity-authentication-mode" target="_blank" rel="noopener"&gt;JDBC driver version 7.2.0&lt;/A&gt;&amp;nbsp;(Java)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/sql/connect/odbc/using-azure-active-directory?view=sql-server-ver16#purpose" target="_blank" rel="noopener"&gt;ODBC driver version 17.3&lt;/A&gt;&amp;nbsp;(C/C++, COBOL, Perl, PHP, Python)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/sql/connect/oledb/features/using-azure-active-directory?view=sql-server-ver16" target="_blank" rel="noopener"&gt;OLE DB driver version 18.3.0&lt;/A&gt;&amp;nbsp;(COM-based applications)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/sql/connect/ado-net/sql/azure-active-directory-authentication?view=sql-server-ver16#using-managed-identity-authentication" target="_blank" rel="noopener"&gt;Microsoft.Data.SqlClient 5.2.2+&lt;/A&gt;&amp;nbsp;(ADO.NET)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://www.nuget.org/packages/Microsoft.EntityFramework.SqlServer/" target="_blank" rel="noopener"&gt;Microsoft.EntityFramework.SqlServer 6.5.0&lt;/A&gt;&amp;nbsp;(Entity Framework)&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;System.Data.SqlClient(SDS) doesn't support managed identity; switch to Microsoft.Data.SqlClient(MDS).&lt;/LI&gt;
&lt;LI&gt;If you need to port your applications from SDS to MDS the following cheat sheet will be helpful:&amp;nbsp;&lt;A href="https://github.com/dotnet/SqlClient/blob/main/porting-cheat-sheet.md" target="_blank" rel="noopener"&gt;https://github.com/dotnet/SqlClient/blob/main/porting-cheat-sheet.md&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;Microsoft.Data.SqlClient also takes a dependency on&amp;nbsp;&lt;A href="https://www.nuget.org/packages/Microsoft.Data.SqlClient#dependencies-body-tab" target="_blank" rel="noopener"&gt;these&lt;/A&gt; packages &amp;amp; most notably the &lt;A href="https://www.nuget.org/packages/Microsoft.Identity.Client/" target="_blank" rel="noopener"&gt;MSAL for .NET (Version 4.56.0+)&lt;/A&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Here is an example of &lt;A href="https://learn.microsoft.com/en-us/azure/app-service/tutorial-connect-msi-sql-database?tabs=windowsclient%2Cefcore" target="_blank" rel="noopener"&gt;Azure web application connecting to Azure SQL,&lt;/A&gt; using managed identity.&lt;/P&gt;
&lt;H1&gt;Step 6: Validate No Local Auth Traffic&lt;/H1&gt;
&lt;P&gt;Be sure to switch all your connections to managed identity before you redeploy your Azure SQL logical servers with Microsoft Entra-only authentication turned on.&lt;/P&gt;
&lt;P&gt;Repeat the use of SQL Audit, just as you did in&amp;nbsp;Step 1, but now to confirm that every connection has moved away from SQL authentication.&lt;/P&gt;
&lt;P&gt;Once your server is up and running with only Entra authentication, any connections still based on SQL authentication will not work, which could disrupt services.&lt;/P&gt;
&lt;P&gt;Test your systems thoroughly to verify that everything operates correctly.&lt;/P&gt;
&lt;H1&gt;Step 7: Enable Microsoft Entra‑only &amp;amp; disable local auth&lt;/H1&gt;
&lt;P&gt;Once all your connections &amp;amp; applications are built to use managed identity, you can disable the SQL Authentication, by turning the Entra-only authentication via &lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/database/authentication-azure-ad-only-authentication-tutorial?view=azuresql&amp;amp;tabs=azure-portal" target="_blank" rel="noopener"&gt;Azure portal&lt;/A&gt;, or &lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/database/authentication-azure-ad-only-authentication?view=azuresql&amp;amp;tabs=azure-cli" target="_blank" rel="noopener"&gt;using the APIs&lt;/A&gt;.&lt;/P&gt;
&lt;H1&gt;Step 8: Enforce at scale (Azure Policy)&lt;/H1&gt;
&lt;P&gt;Additionally, after successful migration and validation, it is recommended to deploy the &lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/database/authentication-azure-ad-only-authentication-policy?view=azuresql" target="_blank" rel="noopener"&gt;built-in Azure Policy&lt;/A&gt; across your subscriptions to ensure that all SQL resources do not use local authentication. During resource creation, Azure SQL instances will be required to have Microsoft Entra-only authentication enabled.&lt;/P&gt;
&lt;P&gt;This requirement can be &lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/database/authentication-azure-ad-only-authentication-policy-how-to?view=azuresql" target="_blank" rel="noopener"&gt;enforced through Azure policies&lt;/A&gt;.&lt;/P&gt;
&lt;H1&gt;Best Practices for Entra-Enabled Azure SQL Applications&lt;/H1&gt;
&lt;UL&gt;
&lt;LI&gt;Use exponential backoff with decorrelated jitter for retrying transient SQL errors, and set a max retry cap to avoid resource drain.&lt;/LI&gt;
&lt;LI&gt;Separate retry logic for connection setup and query execution.&lt;/LI&gt;
&lt;LI&gt;Cache and proactively refresh Entra tokens before expiration.&lt;/LI&gt;
&lt;LI&gt;Use Microsoft.Data.SqlClient v3.0+ with Azure.Identity for secure token management.&lt;/LI&gt;
&lt;LI&gt;Enable connection pooling and use consistent connection strings.&lt;/LI&gt;
&lt;LI&gt;Set appropriate timeouts to prevent hanging operations.&lt;/LI&gt;
&lt;LI&gt;Handle token/auth failures with targeted remediation, not blanket retries.&lt;/LI&gt;
&lt;LI&gt;Apply least-privilege identity principles; avoid global/shared tokens.&lt;/LI&gt;
&lt;LI&gt;Monitor retry counts, failures, and token refreshes via telemetry.&lt;/LI&gt;
&lt;LI&gt;Maintain auditing for compliance and security.&lt;/LI&gt;
&lt;LI&gt;Enforce TLS 1.2+ (Encrypt=True, TrustServerCertificate=False).&lt;/LI&gt;
&lt;LI&gt;Prefer pooled over static connections.&lt;/LI&gt;
&lt;LI&gt;Log SQL exception codes for precise error handling.&lt;/LI&gt;
&lt;LI&gt;Keep libraries and drivers up to date for latest features and resilience.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1&gt;References&lt;/H1&gt;
&lt;UL&gt;
&lt;LI&gt;Use this resource to troubleshoot issues with Entra authentication (previously known as Azure AD Authentication):&amp;nbsp;&lt;A href="https://techcommunity.microsoft.com/blog/azuresqlblog/troubleshooting-problems-related-to-azure-ad-authentication-with-azure-sql-db-an/1062991" target="_blank" rel="noopener"&gt;Troubleshooting problems related to Azure AD authentication with Azure SQL DB and DW | Microsoft Community Hub&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;To add Entra users from an external tenant, invite them as guest users to the Azure SQL Database's Entra administrator tenant. For more information on adding Entra guest users:&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/entra/external-id/b2b-quickstart-add-guest-users-portal" target="_blank" rel="noopener"&gt;Quickstart: Add a guest user and send an invitation - Microsoft Entra External ID | Microsoft Learn&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1&gt;Conclusion&lt;/H1&gt;
&lt;P&gt;Migrating to Microsoft Entra password-less authentication for Azure SQL Database is a strategic investment in security, compliance, and operational efficiency. By following this guide and adopting best practices, organizations can reduce risk, improve resilience, and future-proof their data platform in alignment with Microsoft’s Secure Future Initiative.&lt;/P&gt;</description>
      <pubDate>Tue, 18 Nov 2025 04:35:55 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-sql-blog/securing-azure-sql-database-with-microsoft-entra-password-less/ba-p/4470734</guid>
      <dc:creator>PDasgupta</dc:creator>
      <dc:date>2025-11-18T04:35:55Z</dc:date>
    </item>
    <item>
      <title>Improved Connectivity Types in Azure SQL Managed Instance</title>
      <link>https://techcommunity.microsoft.com/t5/azure-sql-blog/improved-connectivity-types-in-azure-sql-managed-instance/ba-p/4457301</link>
      <description>&lt;P&gt;As part of its ongoing connectivity overhaul, Azure SQL Managed Instance is removing the last obstacles to broader use of the redirect connection type. The more performant connection type now operates only on port 1433 and provides fallback support for older TDS clients.&lt;/P&gt;
&lt;H3&gt;What are "Proxy" and "Redirect"?&lt;/H3&gt;
&lt;P&gt;Proxy and redirect are two different connectivity mechanisms that can be selected on the instance level to govern SQL client connections on managed instances' VNet-local endpoint. These mechanisms implement two separate data flows between a SQL client and the instance's underlying database engine.&lt;/P&gt;
&lt;P&gt;When an instance's connection type is set to proxy, an internal gateway component accepts the connection and opens a new one to the primary replica. The gateway then remains involved until the client disconnects, shuttling the data back and forth between the connection from the client and the connection to the database engine – a process commonly known as&amp;nbsp;&lt;EM&gt;proxying, &lt;/EM&gt;hence the name.&lt;/P&gt;
&lt;P&gt;By contrast, when an instance's connection type is set to redirect, the gateway immediately tells an incoming T-SQL client to abandon the current connection and connect to the primary replica instead. The client follows up to start talking directly to the SQL engine without the gateway in the picture. This makes the connection more resilient since it no longer breaks when the gateway undergoes a planned failover. It is also more performant since there's no unnecessary copying of the data between a pair of connections.&lt;/P&gt;
&lt;P&gt;So, then it would be reasonable to ask...&lt;/P&gt;
&lt;H3&gt;What's stopping me from using redirect right now?&lt;/H3&gt;
&lt;P&gt;Good question! Even though it's more performant, redirect wasn't the winning choice in all scenarios until recently.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;The client and/or its SQL driver had to understand Tabular Data Stream (TDS) version 7.4 or higher, available since SQL Server 2012 (which is when the TDS redirection handshake was introduced). Older SQL drivers have no mechanism to retarget the primary. Worse, sometimes those older drivers are baked into the client backend or executable, or are written in discontinued frameworks, or may simply not have their source code and build systems available anymore.&lt;/LI&gt;
&lt;LI&gt;The client needed to be able to establish a connection across a broad range of ports where the primary might be listening – from 11000 through 11999. That's a thousand target ports open for inbound traffic! Not only does this number raise the hackles of conscientious InfoSec officers concerned about data exfiltration, but it also creates an additional requirement for your networking that is specific to managed instances. That's yet another service-specific deployment detail to keep track of.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;Good news, though: we've removed both limitations!&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Redirect now handles older clients as if the "proxy" connection type were set.&lt;/STRONG&gt; This happens on a per-connection basis, though, so while modern SQL drivers will be redirected, any older driver will be transparently proxied. Overall, this hardens your entire fleet of clients against transient gateway disconnections and ekes out maximum performance.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Redirect now only requires inbound port 1433 to be open.&lt;/STRONG&gt; We've changed the mechanism by which the correct replica is selected so that all replicas now listen on SQL Server's standard TDS port. Simply put, no matter which connection type is set, all managed instances now only expect inbound traffic on port 1433 – and your SQL clients' outbound traffic to managed instances will always only target that port.&lt;/LI&gt;
&lt;/OL&gt;
&lt;H3&gt;So, what's changed?&lt;/H3&gt;
&lt;P&gt;In a nutshell:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;U&gt;Redirect no longer requires ports 11000-11999 for inbound traffic.&lt;/U&gt;&lt;STRONG&gt; &lt;/STRONG&gt;When the connection type is set to redirect, a connecting client is no longer redirected to a port in the 11000-11999 range. All redirection requests are now to port 1433.&lt;/LI&gt;
&lt;LI&gt;&lt;U&gt;Redirect may choose to proxy a client based on its capabilities.&lt;/U&gt; Older (pre-TDS 7.4) SQL drivers that do not support redirection won't receive a redirect message. Instead, the gateway will proxy them transparently. Because this happens on a per-connection basis, you can have redirect as your connection type and rest assured that any legacy clients will still be able to connect. Doing so hardens your entire fleet of clients against gateway disconnections and ekes out maximum network performance.&lt;/LI&gt;
&lt;LI&gt;&lt;U&gt;New managed instances default to the redirect connection type.&lt;/U&gt;&lt;STRONG&gt; &lt;/STRONG&gt;If your deployment scripts explicitly set the connection type to proxy, that setting will be respected (see below).&lt;/LI&gt;
&lt;LI&gt;&lt;U&gt;Default connection type is now replaced with redirect.&lt;/U&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;If your deployment doesn't specify this value or sets it to default, then the instance will automatically adopt the redirect connection type. (It may take up to 24 hours for this change to propagate.)&lt;/LI&gt;
&lt;LI&gt;&lt;U&gt;Instances with the connection type set to default prior to October 2025 are now explicitly set to proxy.&lt;/U&gt; Because default now evaluates to redirect, we've preserved the previous behavior to avoid confusion.&lt;/LI&gt;
&lt;LI&gt;&lt;U&gt;The new redirect behavior also applies when you connect to the Business Critical tier's secondary replicas&lt;/U&gt; via the VNet-local endpoint.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;And one thing that stays the same:&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;If you use failover groups, do keep in mind that the&amp;nbsp;&lt;U&gt;geo-replication traffic still requires ports 11000-11999 to be open.&lt;/U&gt; This is a separate requirement that happens to reuse the same range of ports.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;What you should do&lt;/H3&gt;
&lt;P&gt;If you're creating a new managed instance in a new subnet, you're all set; no need to reconfigure anything or open any extra ports. Your new instances will use redirect by default.&lt;/P&gt;
&lt;P&gt;For your existing instances and deployment procedures, you may want to &lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/connection-types-overview?view=azuresql#change-the-connection-type" target="_blank" rel="noopener"&gt;change the connection type&lt;/A&gt; from proxy to redirect. At the same time:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Verify that your TDS drivers don't misreport their versions or provide only partial support for TDS 7.4. If your clients use the&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/connect-application-instance?view=azuresql#recommended-versions-of-drivers-and-tools" target="_blank" rel="noopener"&gt;recommended versions of drivers and tools&lt;/A&gt; or higher, you're all set. However, we're aware that some organizations may use custom-made TDS drivers and drivers that don't exactly comply with the TDS spec. Or, you might just need additional time to validate your network settings. That's why we're keeping the explicit proxy option around.&lt;/LI&gt;
&lt;LI&gt;Double-check that your clients' network access adheres to the requirements for managed instance &lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/connectivity-architecture-overview?view=azuresql#vnet-local-endpoint" target="_blank" rel="noopener"&gt;VNet-local endpoints&lt;/A&gt;.&amp;nbsp;Some of the most common issues we've seen in the past include treating the instance's VNet-local endpoint as if it were a fixed IP address (it &lt;EM&gt;does&lt;/EM&gt; change!) and filtering inbound traffic to allow connections on port 1433 to only the instance's current IP address or FQDN rather than the entire subnet range, as is correct (redirect can target the entire subnet via a service FQDN).&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;You can learn more about the new redirect behavior in our &lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/connection-types-overview?view=azuresql" target="_blank" rel="noopener"&gt;documentation on the connection types&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Let me know if you find this useful or run into issues. As always, feel free to follow up with a comment or a question and I'll get back to you as soon as possible.&lt;/P&gt;
&lt;P&gt;Until next time,&amp;nbsp;&lt;BR /&gt;-Zoran&lt;/P&gt;</description>
      <pubDate>Wed, 22 Oct 2025 22:12:31 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-sql-blog/improved-connectivity-types-in-azure-sql-managed-instance/ba-p/4457301</guid>
      <dc:creator>ZoranRilak</dc:creator>
      <dc:date>2025-10-22T22:12:31Z</dc:date>
    </item>
    <item>
      <title>Multiple geo-replicas for Azure SQL Hyperscale is now in public preview</title>
      <link>https://techcommunity.microsoft.com/t5/azure-sql-blog/multiple-geo-replicas-for-azure-sql-hyperscale-is-now-in-public/ba-p/4460772</link>
      <description>&lt;P&gt;Active geo-replication for Azure SQL is a business continuity solution that lets you perform quick disaster recovery of individual databases if there is a regional disaster or a large-scale outage.&amp;nbsp; Up to four geo-secondaries could be created for an Azure SQL database except for Hyperscale, until now.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We’re excited to announce that Azure SQL Database Hyperscale support for up to &lt;STRONG&gt;four geo-replicas &lt;/STRONG&gt;is available now in public preview. This enhancement gives you greater flexibility for disaster recovery, regional scale-out, and migration scenarios.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What’s New?&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Create up to four read-only geo-replicas for each Hyperscale database, in the same or different Azure regions.&lt;/LI&gt;
&lt;LI&gt;Use the additional geo-replicas to add read scale-out capabilities to additional regions.&lt;/LI&gt;
&lt;LI&gt;More flexibility to facilitate database migrations and zone redundancy changes.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;How to Get Started&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Getting started with multiple geo-replicas in Azure SQL Hyperscale is straightforward.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the Azure Portal, you can add multiple geo-replicas using the same process that you currently use to add a geo-replica.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Go to your Hyperscale database in the Azure portal.&lt;/LI&gt;
&lt;LI&gt;Open the “Replicas” blade under “Data management”.&lt;BR /&gt;&lt;img&gt;Create a replica from the portal&lt;/img&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Click “Create replica”.&amp;nbsp; &lt;BR /&gt;&lt;STRONG&gt;TIP&lt;/STRONG&gt;: If you want the geo-replica enabled for zone redundancy, remember to click on "Configure database" in the "Compute + storage" section during this step.&amp;nbsp; The zone redundancy setting is not automatically inherited from the primary database when creating the geo-replica.&lt;/LI&gt;
&lt;LI&gt;Select the target server&lt;/LI&gt;
&lt;LI&gt;Review and create&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;Creating a geo-replica can also be done with command line tools like PowerShell.&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;Example:&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;A href="https://learn.microsoft.com/en-us/powershell/module/az.sql/new-azsqldatabasesecondary?view=azps-14.4.0" target="_blank" rel="noopener"&gt;New-AzSqlDatabaseSecondary&lt;/A&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;-DatabaseName mydb1&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;-ServerName sqlserver1&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;-ResourceGroupName myrg&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;-PartnerResourceGroupName myrg&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;-PartnerServerName sqlserver2&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;-AllowConnections “All”&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Performing a Failover&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Performing a failover in the portal is the same process with multiple geo-replicas.&amp;nbsp; Click on the ellipses in the row of the replica to which you want to fail over and choose Failover or Forced failover.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img&gt;Perform a failover in the portal&lt;/img&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For PowerShell, use the &lt;A href="https://learn.microsoft.com/en-us/powershell/module/az.sql/set-azsqldatabasesecondary?view=azps-14.4.0" target="_blank" rel="noopener"&gt;Set-AzSqlDatabaseSecondary&lt;/A&gt; cmdlet.&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;Example:&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&lt;A href="https://learn.microsoft.com/en-us/powershell/module/az.sql/set-azsqldatabasesecondary?view=azps-13.4.0" target="_blank" rel="noopener"&gt;Set-AzSqlDatabaseSecondary&lt;/A&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;-DatabaseName mydb1&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;-PartnerResourceGroupName myrg&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;-ServerName sqlserver2&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;-ResourceGroupName myrg&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;-Failover&lt;/P&gt;
&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Limitations &amp;amp; Notes&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;You can create up to four geo-replicas per database.&lt;/LI&gt;
&lt;LI&gt;Geo-replicas must be created on different logical servers.&lt;/LI&gt;
&lt;LI&gt;Chaining (creating a geo-replica of a geo-replica) is not supported.&lt;/LI&gt;
&lt;LI&gt;If you would like zone redundancy enabled for the geo-replica, you must configure that setting during the create geo-replica process since the setting is not automatically inherited from the primary database.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Learn More:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/database/service-tier-hyperscale-replicas?view=azuresql#geo-replica" target="_blank" rel="noopener"&gt;Hyperscale secondary replicas - Azure SQL Database | Microsoft Learn&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/azure/azure-sql/database/active-geo-replication-overview?view=azuresql&amp;amp;tabs=tsql" target="_blank" rel="noopener"&gt;Active Geo-Replication - Azure SQL Database | Microsoft Learn&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 17 Oct 2025 14:50:25 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/azure-sql-blog/multiple-geo-replicas-for-azure-sql-hyperscale-is-now-in-public/ba-p/4460772</guid>
      <dc:creator>mhyon</dc:creator>
      <dc:date>2025-10-17T14:50:25Z</dc:date>
    </item>
  </channel>
</rss>

