Automatic registration with SQL IaaS Agent extension
Applies to: SQL Server on Azure VM
By default, Azure VMs with SQL Server 2016 or later are automatically registered with the SQL IaaS Agent extension when detected by the CEIP service. You can enable the automatic registration feature for your subscription to easily and automatically register any SQL Server VMs not picked up by the CEIP service, such as older versions of SQL Server.
Register your SQL Server VM with the SQL IaaS Agent extension to unlock a full feature set of benefits.
By default, Azure VMs with SQL Server 2016 or later are automatically registered with the SQL IaaS Agent extension with limited functionality when detected by the CEIP service. You can use the automatic registration feature to automatically register any SQL Server VMs not identified by the CEIP service. The license type automatically defaults to that of the VM image. If you use a pay-as-you-go image for your VM, then your license type will be
PAYG, otherwise your license type will be
AHUB by default. For information about privacy, see the SQL IaaS Agent extension privacy statements.
Once automatic registration is enabled for a subscription all current and future VMs that have SQL Server installed are registered with the SQL IaaS Agent extension. This is done by running a monthly job that detects whether or not SQL Server is installed on all the unregistered VMs in the subscription. For unregistered VMs, the job copies the SQL IaaS Agent extension binaries to the VM, then runs a one-time utility to check for the SQL Server registry hive. If the SQL Server hive is detected, the virtual machine is registered with the extension. If no SQL Server hive exists in the registry, the binaries are removed.
- If the SQL Server hive is not present in the registry, removing the binaries might be affected if there are resource locks in place.
- If you deployed a SQL Server VM with a marketplace image which has the SQL IaaS Agent extension preinstalled, and the extension is in a failed state or it was removed, automatic registration checks the registry to see if SQL Server is installed on the VM and then registers it with the extension.
Integration with centrally managed Azure Hybrid Benefit
Centrally managed Azure Hybrid Benefit (CM-AHB) is a service that helps customers optimize their Azure costs and use other benefits such as:
- Move all pay-as-you-go (full price) SQL PaaS/IaaS workloads to take advantage of your Azure Hybrid Benefits without have to individually configure them to enable the benefit.
- Ensure that all your SQL workloads are licensed in compliance with the existing license agreements.
- Separate the license compliance management roles from devops roles using RBAC
- Take advantage of free business continuity by ensuring that your passive & disaster recovery (DR) environments are properly identified.
- Use MSDN licenses in Azure for non-production environments.
CM-AHB uses data provided by the SQL IaaS Agent extension to account for the number of SQL Server licenses used by individual Azure VMs and provides recommendations to the billing admin during the license assignment process. Using the recommendations ensures that you get the maximum discount by using Azure Hybrid Benefit. If your VMs aren't registered with the SQL IaaS Agent extension when CM-AHB is enabled by your billing admin, the service won't receive the full usage data from your Azure subscriptions and therefore the CM-AHB recommendations will be inaccurate.
If automatic registration is activated after CM-AHB is enabled, you run the risk of unnecessary pay-as-you-go charges for your SQL Server on Azure VM workloads. To mitigate this risk, adjust your license assignments in CM-AHB to account for the additional usage that will be reported by the SQL IaaS Agent extension after auto-registration. We published an open source tool that provides insights into the utilization of SQL Server licenses, including the utilization by the SQL Servers on Azure Virtual Machines that are not yet registered with the SQL IaaS Agent extension.
To enable automatic registration of your SQL Server VM with the extension, you'll need:
- An Azure subscription.
- The client credentials used to register the virtual machines to exist in any of the following Azure roles: Virtual Machine contributor, Contributor, or Owner.
Once automatic registration is enabled, SQL Server VMs are registered according to these conditions:
- VMs are deployed using an Azure Resource Model to a supported Windows Server virtual machine.
- They have SQL Server installed.
- VMs are deployed to the public or Azure Government cloud. Other clouds aren't currently supported.
- VMs are running.
Automatic registration is supported for Ubuntu Linux VMs in Azure.
Enable automatic registration
To enable automatic registration of your SQL Server VMs in the Azure portal, follow these steps:
Sign into the Azure portal.
Navigate to the SQL virtual machines resource page.
Select Automatic SQL Server VM registration to open the Automatic registration page.
Choose your subscription from the dropdown list.
Read through the terms and if you agree, select I accept.
Select Register to enable the feature and automatically register all current and future SQL Server VMs with the SQL IaaS Agent extension. This won't restart the SQL Server service on any of the VMs.
Disable automatic registration
Use the Azure CLI or Azure PowerShell to disable the automatic registration feature. When the automatic registration feature is disabled, SQL Server VMs added to the subscription need to be manually registered with the SQL IaaS Agent extension. This won't unregister existing SQL Server VMs that have already been registered.
To disable automatic registration using Azure CLI, run the following command:
az feature unregister --namespace Microsoft.SqlVirtualMachine --name BulkRegistration
Enable for multiple subscriptions
You can enable the automatic registration feature for multiple Azure subscriptions by using PowerShell.
To do so, follow these steps:
Save this script.
Navigate to where you saved the script by using an administrative Command Prompt or PowerShell window.
Connect to Azure (
Execute the script, passing in SubscriptionIds as parameters. If no subscriptions are specified, the script enables auto-registration for all the subscriptions in the user account.
The following command enables auto-registration for two subscriptions:
.\EnableBySubscription.ps1 -SubscriptionList a1a1a-aa11-11aa-a1a1-a11a111a1,b2b2b2-bb22-22bb-b2b2-b2b2b2bb
The following command enables auto-registration for all subscriptions:
Failed registration errors are stored in
RegistrationErrors.csv located in the same directory where you saved and executed the
.ps1 script from.
- Review the benefits provided by the SQL IaaS Agent extension.
- Manually register a single VM
- Troubleshoot known issues with the extension.
- Review the SQL IaaS Agent extension privacy statements.
- Review the best practices checklist to optimize for performance and security.
For more information, review the following articles: