Merge pull request #1435 from anosov1960/PAYG-transition

Payg transition
This commit is contained in:
Alexander (Sasha) Nosov
2025-10-29 10:33:09 -07:00
committed by GitHub
15 changed files with 282 additions and 262 deletions
@@ -1,69 +0,0 @@
# Paygo-SQLArc (Windows only)
This Azure Policy ensures that all SQL Arc servers using `LicenseType = Paid` are marked as non-compliant. Servers with `LicenseType = LicenseOnly` are treated as compliant. The remediation task sets `LicenseType = PAYG`.
Use Azure CLI or PowerShell to create the policy definition:
## Artifacts
- **policy.json**: Main policy definition referencing external parameter and rule files.
- **params.json**: Defines policy parameters.
- **rules.json**: Contains the policy rule logic.
## Create policy
Use the following command to create policy
```bash
#!/bin/bash
az policy definition create \
--name "Paygo-SQLArc" \
--display-name "Paygo-SQLArc" \
--description "This Azure Policy ensures that all SQL Arc servers using LicenseType = Paid are marked as non-compliant. Servers with LicenseType = LicenseOnly are treated as compliant. The remediation task sets LicenseType = PAYG." \
--rules @rules.json \
--params @params.json \
--mode Indexed \
--subscription "<your-subscription-id>"\
```
## Assign policy
Use the following command to assign policy
```bash
#!/bin/bash
# Set variables
SUB_ID="<your-subscription-id>"
RG_NAME="<your-resoure-group>" # optional
SCOPE="/subscriptions/$SUB_ID/resourceGroups/$RG_NAME"
LOCATION="<your-azure-region>"
# Create policy assignment
az policy assignment create \
--name "Paygo-SQLArc-Assign" \
--policy "Paygo-SQLArc" \
--scope "$SCOPE" \
--params '{ "effect": { "value": "DeployIfNotExists" } }' \
--mi-system-assigned \
--role "Contributor" \
--identity-scope "$SCOPE" \
--location "$LOCATION"
```
## Create remediation task
Us the following command to create a remediation task
```bash
#!/bin/bash
RG_NAME="<your-resoure-group>"
az policy remediation create \
--name "Remediate-Paygo-SQLArc" \
--policy-assignment "Paygo-SQLArc-Assign" \
--resource-group "$RG_NAME" \
--resource-discovery-mode ReEvaluateCompliance
```
@@ -0,0 +1,130 @@
# Paygo-SQLArc (Windows only)
This Azure Policy ensures that all SQL Arc servers using `LicenseType = Paid` are marked as non-compliant. Servers with `LicenseType = LicenseOnly` are treated as compliant. The remediation task sets `LicenseType = PAYG`.
Use Azure CLI or PowerShell to create the policy definition:
## Artifacts
- **policy.json**: Main policy definition referencing external parameter and rule files.
- **params.json**: Defines policy parameters.
- **rules.json**: Contains the policy rule logic.
## Copy policy artifacts to your environment
```PowerShell
curl https://raw.githubusercontent.com/microsoft/sql-server-samples/refs/heads/master/samples/manage/azure-arc-enabled-sql-server/compliance/arc-sql-payg-compliance/params.json -o params.json
curl https://raw.githubusercontent.com/microsoft/sql-server-samples/refs/heads/master/samples/manage/azure-arc-enabled-sql-server/compliance/arc-sql-payg-compliance/rules.json -o rules.json
```
## Create policy
Use the following command to create policy
```PowerShell
$SubId = "<your-subscription-id>"
$PolicyName = "Paygo-SQLArc"
az policy definition create `
--name $PolicyName `
--display-name $PolicyName `
--description "This Azure Policy ensures that all SQL Arc servers using LicenseType = Paid are marked as non-compliant. Servers with LicenseType = LicenseOnly are treated as compliant. The remediation task sets LicenseType = PAYG." `
--rules "@rules.json" `
--params "@params.json" `
--mode Indexed `
--subscription $SubId `
--only-show-errors | Out-Null
```
## Assign policy
Use the following command to assign policy
```PowerShell
$SubId = "<your-subscription-id>"
$RgName = "<your-resource-group>" # optional; set to "" to target subscription scope
$Location = "<your-azure-region>" # e.g., eastus, westus2
if ([string]::IsNullOrWhiteSpace($RgName)) {
$Scope = "/subscriptions/$SubId"
} else {
$Scope = "/subscriptions/$SubId/resourceGroups/$RgName"
}
az account set --subscription $SubId
az policy assignment create `
--name "Paygo-SQLArc-Assign" `
--policy "Paygo-SQLArc" `
--scope "$Scope" `
--params '{ "effect": { "value": "DeployIfNotExists" } }' `
--mi-system-assigned `
--role "Contributor" `
--identity-scope "$Scope" `
--location "$Location" `
--only-show-errors | Out-Null
```
## Create remediation task
Use the following command to create a remediation task
```PowerShell
$RemediationName = "Remediate-Paygo-SQLArc"
$PolicyAssignmentName = "Paygo-SQLArc-Assign"
$SubId = "<your-subscription-id>"
$RgName = "<your-resource-group>"
az account set --subscription $SubId
if ([string]::IsNullOrWhiteSpace($RgName)) {
az policy remediation create `
--name $RemediationName `
--policy-assignment $PolicyAssignmentName `
--resource-discovery-mode ReEvaluateCompliance `
--only-show-errors | Out-Null
} else {
az policy remediation create `
--name $RemediationName `
--policy-assignment $PolicyAssignmentName `
--resource-group "$RgName" `
--resource-discovery-mode ReEvaluateCompliance `
--only-show-errors | Out-Null
}
```
## Remove remediation task
```PowerShell
$RemediationName = "Remediate-Paygo-SQLArc"
$RgName = "<your-resource-group>"
$SubId = "<your-subscription-id>"
if ([string]::IsNullOrWhiteSpace($RgName)) {
az policy remediation cancel `
--name $RemediationName `
--subscription $SubId `
--only-show-errors | Out-Null
az policy remediation delete `
--name $RemediationName `
--subscription $SubId `
--only-show-errors | Out-Null
} else {
az policy remediation cancel `
--name $RemediationName `
--resource-group $RgName `
--subscription $SubId `
--only-show-errors | Out-Null
az policy remediation delete `
--name $RemediationName `
--resource-group $RgName `
--subscription $SubId `
--only-show-errors | Out-Null
}
```
@@ -10,60 +10,121 @@ Use Azure CLI or PowerShell to create the policy definition:
- **params.json**: Defines policy parameters.
- **rules.json**: Contains the policy rule logic.
## Copy policy artifacts to your environment
```PowerShell
curl https://raw.githubusercontent.com/microsoft/sql-server-samples/refs/heads/master/samples/manage/azure-hybrid-benefit/compliance/azure-sql-payg-compliance/sql-mi-payg-compliance/params.json -o params.json
curl https://raw.githubusercontent.com/microsoft/sql-server-samples/refs/heads/master/samples/manage/azure-hybrid-benefit/compliance/azure-sql-payg-compliance/sql-mi-payg-compliance/rules.json -o rules.json
```
## Create policy
Use the following command to create policy
```bash
```PowerShell
#!/bin/bash
$SubId = "<your-subscription-id>"
$PolicyName = "Paygo-SQLMI"
az policy definition create \
--name "Paygo-SQLArc" \
--display-name "Paygo-SQLMI" \
--description "This Azure Policy ensures that all SQL Managed Instance resources using LicenseType = BasePrice are marked as non-compliant. The remediation task sets LicenseType = LicenseIncluded." \
--rules @rules.json \
--params @params.json \
--mode Indexed \
--subscription "<your-subscription-id>"\
az policy definition create `
--name $PolicyName `
--display-name $PolicyName `
--description "This Azure Policy ensures that all SQL Managed Instance resources using LicenseType = BasePrice are marked as non-compliant. The remediation task sets LicenseType = LicenseIncluded" `
--rules "@rules.json" `
--params "@params.json" `
--mode Indexed `
--subscription $SubId `
--only-show-errors | Out-Null
```
## Assign policy
Use the following command to assign policy
```bash
#!/bin/bash
```PowerShell
# Set variables
SUB_ID="<your-subscription-id>"
RG_NAME="<your-resoure-group>" # optional
SCOPE="/subscriptions/$SUB_ID/resourceGroups/$RG_NAME"
LOCATION="<your-azure-region>"
$SubId = "<your-subscription-id>"
$RgName = "<your-resource-group>" # optional; set to "" to target subscription scope
$Location = "<your-azure-region>" # e.g., eastus, westus2
# Create policy assignment
az policy assignment create \
--name "Paygo-SQLMI-Assign" \
--policy "Paygo-SQLArc" \
--scope "$SCOPE" \
--params '{ "effect": { "value": "DeployIfNotExists" } }' \
--mi-system-assigned \
--role "Contributor" \
--identity-scope "$SCOPE" \
--location "$LOCATION"
if ([string]::IsNullOrWhiteSpace($RgName)) {
$Scope = "/subscriptions/$SubId"
} else {
$Scope = "/subscriptions/$SubId/resourceGroups/$RgName"
}
az account set --subscription $SubId
az policy assignment create `
--name "Paygo-SQLMI-Assign" `
--policy "Paygo-SQLMI" `
--scope "$Scope" `
--params '{ "effect": { "value": "DeployIfNotExists" } }' `
--mi-system-assigned `
--role "Contributor" `
--identity-scope "$Scope" `
--location "$Location" `
--only-show-errors | Out-Null
```
## Create remediation task
Us the following command to create a remediation task
Use the following command to create a remediation task
```bash
#!/bin/bash
```PowerShell
RG_NAME="<your-resoure-group>"
$RemediationName = "Remediate-Paygo-SQLMI"
$PolicyAssignmentName = "Paygo-SQLMI-Assign"
$SubId = "<your-subscription-id>"
$RgName = "<your-resource-group>"
az policy remediation create \
--name "Remediate-Paygo-SQLMI" \
--policy-assignment "Paygo-SQLMI-Assign" \
--resource-group "$RG_NAME" \
--resource-discovery-mode ReEvaluateCompliance
az account set --subscription $SubId
if ([string]::IsNullOrWhiteSpace($RgName)) {
az policy remediation create `
--name $RemediationName `
--policy-assignment $PolicyAssignmentName `
--resource-discovery-mode ReEvaluateCompliance `
--only-show-errors | Out-Null
} else {
az policy remediation create `
--name $RemediationName `
--policy-assignment $PolicyAssignmentName `
--resource-group "$RgName" `
--resource-discovery-mode ReEvaluateCompliance `
--only-show-errors | Out-Null
}
```
## Remove remediation task
```PowerShell
$RemediationName = "Remediate-Paygo-SQLMI"
$RgName = "<your-resource-group>"
$SubId = "<your-subscription-id>"
if ([string]::IsNullOrWhiteSpace($RgName)) {
az policy remediation cancel `
--name $RemediationName `
--subscription $SubId `
--only-show-errors | Out-Null
az policy remediation delete `
--name $RemediationName `
--subscription $SubId `
--only-show-errors | Out-Null
} else {
az policy remediation cancel `
--name $RemediationName `
--resource-group $RgName `
--subscription $SubId `
--only-show-errors | Out-Null
az policy remediation delete `
--name $RemediationName `
--resource-group $RgName `
--subscription $SubId `
--only-show-errors | Out-Null
}
```
@@ -1,16 +1,14 @@
{
"parameters": {
"effect": {
"type": "String",
"metadata": {
"displayName": "Effect",
"description": "Use DeployIfNotExists to remediate; use Disabled to turn off."
},
"allowedValues": [
"DeployIfNotExists",
"Disabled"
],
"defaultValue": "DeployIfNotExists"
}
"effect": {
"type": "String",
"metadata": {
"displayName": "Effect",
"description": "Enable or disable the execution of the policy."
},
"allowedValues": [
"DeployIfNotExists",
"Disabled"
],
"defaultValue": "DeployIfNotExists"
}
}
@@ -1,89 +1,49 @@
{
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Sql/managedInstances"
}
]
},
"then": {
"effect": "[parameters('effect')]",
"details": {
"type": "Microsoft.Sql/managedInstances",
"name": "[field('name')]",
"roleDefinitionIds": [
"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
],
"evaluationDelay": "AfterProvisioningSuccess",
"existenceCondition": {
"allOf": [
{
"field": "Microsoft.Sql/managedInstances/licenseType",
"equals": "LicenseIncluded"
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Sql/managedInstances"
},
{
"field": "Microsoft.Sql/managedInstances/licenseType",
"equals": "BasePrice"
}
]
},
"then": {
"effect": "[parameters('effect')]",
"details": {
"type": "Microsoft.Sql/managedInstances",
"name": "[field('name')]",
"roleDefinitionIds": [
"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
],
"evaluationDelay": "AfterProvisioningSuccess",
"existenceCondition": {
"allOf": [
{
"field": "Microsoft.Sql/managedInstances/licenseType",
"equals": "LicenseIncluded"
},
{
"field": "Microsoft.Sql/managedInstances/administrators.azureADOnlyAuthentication",
"equals": true
}
]
},
"deployment": {
"properties": {
"mode": "Incremental",
"templateLink": {
"uri": "<link-to-remediation-template>"
},
"parameters": {
"miName": {
"value": "[field('name')]"
},
{
"field": "Microsoft.Sql/managedInstances/administrators.azureADOnlyAuthentication",
"equals": true
}
]
},
"deployment": {
"properties": {
"mode": "Incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"miName": { "type": "string" },
"location": { "type": "string" }
},
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2021-04-01",
"name": "updateMiAdminAndLicense",
"properties": {
"mode": "Incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"miName": { "type": "string" },
"location": { "type": "string" }
},
"resources": [
{
"type": "Microsoft.Sql/managedInstances",
"apiVersion": "2023-08-01",
"name": "[parameters('miName')]",
"location": "[parameters('location')]",
"properties": {
"licenseType": "LicenseIncluded",
"administrators": {
"administratorType": "ActiveDirectory",
"principalType": "Application",
"login": "[parameters('miName')]",
"sid": "[reference(resourceId('Microsoft.Sql/managedInstances', parameters('miName')), '2023-08-01', 'Full').identity.principalId]",
"tenantId": "[subscription().tenantId]",
"azureADOnlyAuthentication": true
}
}
}
]
},
"parameters": {
"miName": { "value": "[parameters('miName')]" },
"location": { "value": "[parameters('location')]" }
}
}
}
]
},
"parameters": {
"miName": { "value": "[field('name')]" },
"location": { "value": "[field('location')]" }
"location": {
"value": "[field('location')]"
}
}
}
@@ -1,7 +0,0 @@
"TenantID","SubID","ResourceName","ResourceType","Status","OriginalLicenseType","ResourceGroup","Location"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","SQL2012EEArc","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","SQL2022EE","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","sql2022rtm","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","sql2025devstd","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","ajayjsqlmi","Microsoft.Sql/managedInstances","Ready","BasePrice","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","AdventureworksLT","Microsoft.Sql/servers/databases","Online","BasePrice","ajayj","westus2"
1 TenantID SubID ResourceName ResourceType Status OriginalLicenseType ResourceGroup Location
2 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 SQL2012EEArc Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
3 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 SQL2022EE Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
4 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 sql2022rtm Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
5 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 sql2025devstd Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
6 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 ajayjsqlmi Microsoft.Sql/managedInstances Ready BasePrice ajayj westus2
7 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 AdventureworksLT Microsoft.Sql/servers/databases Online BasePrice ajayj westus2
@@ -1,7 +0,0 @@
"TenantID","SubID","ResourceName","ResourceType","Status","OriginalLicenseType","ResourceGroup","Location"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","SQL2012EEArc","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","SQL2022EE","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","sql2022rtm","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","sql2025devstd","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","ajayjsqlmi","Microsoft.Sql/managedInstances","Ready","BasePrice","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","AdventureworksLT","Microsoft.Sql/servers/databases","Online","BasePrice","ajayj","westus2"
1 TenantID SubID ResourceName ResourceType Status OriginalLicenseType ResourceGroup Location
2 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 SQL2012EEArc Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
3 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 SQL2022EE Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
4 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 sql2022rtm Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
5 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 sql2025devstd Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
6 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 ajayjsqlmi Microsoft.Sql/managedInstances Ready BasePrice ajayj westus2
7 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 AdventureworksLT Microsoft.Sql/servers/databases Online BasePrice ajayj westus2
@@ -1,7 +0,0 @@
"TenantID","SubID","ResourceName","ResourceType","Status","OriginalLicenseType","ResourceGroup","Location"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","SQL2012EEArc","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","SQL2022EE","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","sql2022rtm","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","sql2025devstd","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","ajayjsqlmi","Microsoft.Sql/managedInstances","Ready","BasePrice","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","AdventureworksLT","Microsoft.Sql/servers/databases","Online","BasePrice","ajayj","westus2"
1 TenantID SubID ResourceName ResourceType Status OriginalLicenseType ResourceGroup Location
2 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 SQL2012EEArc Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
3 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 SQL2022EE Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
4 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 sql2022rtm Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
5 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 sql2025devstd Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
6 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 ajayjsqlmi Microsoft.Sql/managedInstances Ready BasePrice ajayj westus2
7 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 AdventureworksLT Microsoft.Sql/servers/databases Online BasePrice ajayj westus2
@@ -1,7 +0,0 @@
"TenantID","SubID","ResourceName","ResourceType","Status","OriginalLicenseType","ResourceGroup","Location"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","SQL2012EEArc","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","SQL2022EE","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","sql2022rtm","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","sql2025devstd","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","ajayjsqlmi","Microsoft.Sql/managedInstances","Ready","BasePrice","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","AdventureworksLT","Microsoft.Sql/servers/databases","Online","BasePrice","ajayj","westus2"
1 TenantID SubID ResourceName ResourceType Status OriginalLicenseType ResourceGroup Location
2 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 SQL2012EEArc Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
3 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 SQL2022EE Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
4 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 sql2022rtm Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
5 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 sql2025devstd Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
6 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 ajayjsqlmi Microsoft.Sql/managedInstances Ready BasePrice ajayj westus2
7 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 AdventureworksLT Microsoft.Sql/servers/databases Online BasePrice ajayj westus2
@@ -1,7 +0,0 @@
"TenantID","SubID","ResourceName","ResourceType","Status","OriginalLicenseType","ResourceGroup","Location"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","SQL2012EEArc","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","SQL2022EE","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","sql2022rtm","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","sql2025devstd","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","ajayjsqlmi","Microsoft.Sql/managedInstances","Ready","BasePrice","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","AdventureworksLT","Microsoft.Sql/servers/databases","Online","BasePrice","ajayj","westus2"
1 TenantID SubID ResourceName ResourceType Status OriginalLicenseType ResourceGroup Location
2 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 SQL2012EEArc Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
3 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 SQL2022EE Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
4 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 sql2022rtm Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
5 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 sql2025devstd Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
6 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 ajayjsqlmi Microsoft.Sql/managedInstances Ready BasePrice ajayj westus2
7 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 AdventureworksLT Microsoft.Sql/servers/databases Online BasePrice ajayj westus2
@@ -1,7 +0,0 @@
"TenantID","SubID","ResourceName","ResourceType","Status","OriginalLicenseType","ResourceGroup","Location"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","SQL2012EEArc","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","SQL2022EE","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","sql2022rtm","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","sql2025devstd","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","ajayjsqlmi","Microsoft.Sql/managedInstances","Ready","BasePrice","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","AdventureworksLT","Microsoft.Sql/servers/databases","Online","BasePrice","ajayj","westus2"
1 TenantID SubID ResourceName ResourceType Status OriginalLicenseType ResourceGroup Location
2 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 SQL2012EEArc Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
3 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 SQL2022EE Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
4 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 sql2022rtm Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
5 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 sql2025devstd Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
6 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 ajayjsqlmi Microsoft.Sql/managedInstances Ready BasePrice ajayj westus2
7 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 AdventureworksLT Microsoft.Sql/servers/databases Online BasePrice ajayj westus2
@@ -1,6 +0,0 @@
"TenantID","SubID","ResourceName","ResourceType","Status","OriginalLicenseType","ResourceGroup","Location"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","SQL2012EEArc","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","SQL2022EE","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","sql2025devstd","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","AHUB","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","ajayjsqlmi","Microsoft.Sql/managedInstances","Ready","BasePrice","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","AdventureworksLT","Microsoft.Sql/servers/databases","Online","BasePrice","ajayj","westus2"
1 TenantID SubID ResourceName ResourceType Status OriginalLicenseType ResourceGroup Location
2 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 SQL2012EEArc Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
3 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 SQL2022EE Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
4 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 sql2025devstd Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running AHUB ajayj westus2
5 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 ajayjsqlmi Microsoft.Sql/managedInstances Ready BasePrice ajayj westus2
6 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 AdventureworksLT Microsoft.Sql/servers/databases Online BasePrice ajayj westus2
@@ -1,8 +0,0 @@
"TenantID","SubID","ResourceName","ResourceType","Status","OriginalLicenseType","ResourceGroup","Location"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","SQL2019Arc","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","PAYG","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","sql2022rtmdev","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","PAYG","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","sqldbmi2","Microsoft.Sql/managedInstances","Ready","LicenseIncluded","ajayj","westus"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","sqldbmi1","Microsoft.Sql/managedInstances","Ready","LicenseIncluded","ajayj","westus"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","AlwaysEncrypted","Microsoft.Sql/servers/databases","Online","LicenseIncluded","ajayj","westcentralus"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","dbmirroringspn","Microsoft.Sql/servers/databases","Online","LicenseIncluded","ajayj","westus2"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","dbmirrortest","Microsoft.Sql/servers/databases","Online","LicenseIncluded","ajayj","westus2"
1 TenantID SubID ResourceName ResourceType Status OriginalLicenseType ResourceGroup Location
2 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 SQL2019Arc Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running PAYG ajayj westus2
3 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 sql2022rtmdev Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running PAYG ajayj westus2
4 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 sqldbmi2 Microsoft.Sql/managedInstances Ready LicenseIncluded ajayj westus
5 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 sqldbmi1 Microsoft.Sql/managedInstances Ready LicenseIncluded ajayj westus
6 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 AlwaysEncrypted Microsoft.Sql/servers/databases Online LicenseIncluded ajayj westcentralus
7 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 dbmirroringspn Microsoft.Sql/servers/databases Online LicenseIncluded ajayj westus2
8 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 dbmirrortest Microsoft.Sql/servers/databases Online LicenseIncluded ajayj westus2
@@ -1,2 +0,0 @@
"TenantID","SubID","ResourceName","ResourceType","Status","OriginalLicenseType","ResourceGroup","Location"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","SQL2019Arc","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","PAYG","ajayj","westus2"
1 TenantID SubID ResourceName ResourceType Status OriginalLicenseType ResourceGroup Location
2 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 SQL2019Arc Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running PAYG ajayj westus2
@@ -1,2 +0,0 @@
"TenantID","SubID","ResourceName","ResourceType","Status","OriginalLicenseType","ResourceGroup","Location"
"72f988bf-86f1-41af-91ab-2d7cd011db47","fa58cf66-caaf-4ba9-875d-f310d3694845","SQL2019Arc","Microsoft.SqlVirtualMachine/sqlVirtualMachines","VM running","PAYG","ajayj","westus2"
1 TenantID SubID ResourceName ResourceType Status OriginalLicenseType ResourceGroup Location
2 72f988bf-86f1-41af-91ab-2d7cd011db47 fa58cf66-caaf-4ba9-875d-f310d3694845 SQL2019Arc Microsoft.SqlVirtualMachine/sqlVirtualMachines VM running PAYG ajayj westus2