
{"id":7533,"date":"2020-01-27T13:04:38","date_gmt":"2020-01-27T13:04:38","guid":{"rendered":"https:\/\/rax-stg-wp-aws.com\/blogs\/azure-sql-virtual-machine-resource-provider\/"},"modified":"2026-11-03T19:28:43","modified_gmt":"2026-11-03T19:28:43","slug":"azure-sql-virtual-machine-resource-provider","status":"publish","type":"blogs","link":"https:\/\/www.rackspace.com\/en-gb\/blogs\/azure-sql-virtual-machine-resource-provider\/","title":{"rendered":"Azure SQL virtual machine resource provider"},"content":{"rendered":"<p><strong>Introduction<\/strong><\/p>\n<p>Most release pipelines have some automation to do after configuration to a&nbsp;virtual machine (VM) to prepare it for use. Looking at SQL Server\u00ae&nbsp; you&nbsp;can configure a lot of options to make it production-ready. What most people&nbsp;do not know is that a resource provider within Microsoft\u00ae Azure\u00ae configures&nbsp;basic SQL Server settings without the need for any post-configuration scripts.<\/p>\n<p>When you use the Azure portal, a SQL Server VM comes already registered&nbsp;with the SQL Server resource provider. Using the resource provider includes&nbsp;the following benefits:<\/p>\n<ul>\n<li>Automated patching and backups<\/li>\n<li>Configurable SQL authentication modes<\/li>\n<li>Configurable data, log, and temp file paths<\/li>\n<li>User-defined storage workload types<\/li>\n<\/ul>\n<p>The biggest issue about figuring out which method to use for configuration is determining&nbsp;how flexible you want to be for configuration options. With Azure PowerShell\u00ae&nbsp;there are not many meaningful settings exposed for post configuration except&nbsp;for setting the SQL management type. You can find more information about the&nbsp;management mode <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/virtual-machines\/windows\/sql\/virtual-machines-windows-sql-register-with-resource-provider?tabs=azure-cli%2Cbash#management-modes\">here<\/a>&nbsp;and on<a href=\"https:\/\/docs.microsoft.com\/en-us\/powershell\/module\/az.sqlvirtualmachine\/new-azsqlvm?view=azps-3.3.0\"> Azure PowerShell<\/a>.<\/p>\n<p>Next&nbsp;in line is the Azure Command Line Interface (CLI). This CLI enables you to set backups, SQL authentication&nbsp;types, and patching schedules as described <a href=\"https:\/\/docs.microsoft.com\/en-us\/cli\/azure\/sql\/vm?view=azure-cli-latest\">here<\/a>. The most powerful option is configuring within an Azure Resource Manager (ARM) template. The ARM template includes all the settings from the CLI as well as configuring SQL storage settings as shown in Template <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/templates\/microsoft.sqlvirtualmachine\/2017-03-01-preview\/sqlvirtualmachines#\">JSON<\/a>.<br \/>\n&nbsp;<\/p>\n<p>Let&#8217;s take the example of creating a new SQL Server VM running SQL Server 2019 on Windows\u00ae 2019. Our example project has the following requirements:<\/p>\n<ul>\n<li>Use mixed-mode authentication&nbsp;<\/li>\n<li>Store data and log files on separate drives&nbsp;<\/li>\n<\/ul>\n<p>Previously, you needed to use a post-configuration method, such as a Desired State&nbsp;Configuration (DSC) or custom script extension, to format the drives and configure&nbsp;the SQL Server settings. Looking at the following three options to provision, let&#8217;s&nbsp;evaluate what you can accomplish:<\/p>\n<ul>\n<li>Azure PowerShell can create only the SQL VM resource provider object. No configuration options exist to meet the requirements given.<\/li>\n<li>Azure CLI provides the options to configure mixed-mode authentication and to create an&nbsp;SQL Server login with sysadmin privileges.<\/li>\n<li>Azure ARM template offers complete control and provides the ability to configure the&nbsp;mixed-mode requirement and create data drives along with formatting and to configure SQL Server to use them.<\/li>\n<\/ul>\n<p>One of the great features of using the SQL Server resource provider is that you can now extend, within the Azure portal, the drives that you configured during deployment\u2014without deallocating the virtual machine. You can extend a disk easily in the Azure portal by doing the<br \/>\nfollowing tasks:<\/p>\n<ul>\n<li>In the resource group where you provisioned the SQL Server, select the SQL VM resource-type object. It should have the same name as the VM.<\/li>\n<\/ul>\n<p>![resources](1.png)<\/p>\n<ul>\n<li>Select <strong>Configure<\/strong>&nbsp;from the blade, scroll down on the right-hand side, and&nbsp;select the <strong>Extend drive<\/strong>&nbsp;button of the drive to extend.&nbsp;<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26429-body-1.png\" alt=\"azure sql pic 1\" \/><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26429-body-2.png\" alt=\"azure sql pic 2\" \/><\/p>\n<ul>\n<li>Select the disk size from the drop-down menu to determine by how much to extend the current drive. Select <strong>Apply.<\/strong><\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26429-body-3.png\" alt=\"azure sql pic 3\" \/><\/p>\n<p><strong>Conclusion<\/strong><br \/>\nI hope this quick glimpse into using the SQL Server resource provider shows how&nbsp;easy configuring SQL Server is. You can find the example ARM template that I used&nbsp;for this article<a href=\"https:\/\/github.com\/jrudley\/azureSqlResourceProvider\"> here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Azure SQL virtual machine resource provider<\/p>\n","protected":false},"author":2,"featured_media":7535,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","format":"standard","meta":{"content-type":"","nid":"26429","content_type":"blog","created_by":"10130","authored_on":"2024-01-01T13:04:38+00:00","field_article_industries":"","tag_category":"Technical","field_blog_author_text":"by Rackspace Technology Staff","seo_description":"Start PostgreSQL administration on Linux by installing and configuring version 9.3, harnessing the capabilities of this advanced open-source RDBMS.\r\n","field_featured_image":"","insights_image":"\/wp-content\/uploads\/2026\/blog_technical_images\/26429-insights_image-cloud-services-technical-blog-1-insights.jpg","field_partners":"","rxt_platforms":"Microsoft Azure","product":"","publisheddate":"2020-01-27T13:04:38","rxt_solutions":"Cloud Management & Operations","opengraph_tag":"","x_tag":"","teaser_flag":"Technical Blog","seo_titile":"Azure SQL VM Resource Provider | Rackspace Technology","field_topics":"","field_slug":"azure-sql-vm-resource-provider","footnotes":""},"categories":[178],"tags":[204],"class_list":["post-7533","blogs","type-blogs","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-technical"],"_links":{"self":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/7533","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs"}],"about":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/types\/blogs"}],"author":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/comments?post=7533"}],"version-history":[{"count":3,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/7533\/revisions"}],"predecessor-version":[{"id":9522,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/7533\/revisions\/9522"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/media\/7535"}],"wp:attachment":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/media?parent=7533"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/categories?post=7533"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/tags?post=7533"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}