MR
Mayur Rathi
@mayurrathi
⭐ 5 GitHub stars

Azure Resource Manager Sql Dotnet

|

mkdir -p ./skills/azure-resource-manager-sql-dotnet && curl -sfL https://raw.githubusercontent.com/mayurrathi/awesome-agent-skills/main/skills/azure-resource-manager-sql-dotnet/SKILL.md -o ./skills/azure-resource-manager-sql-dotnet/SKILL.md

Run in terminal / PowerShell. Requires curl (Unix) or PowerShell 5+ (Windows).

Skill Content

# Azure.ResourceManager.Sql (.NET)


Management plane SDK for provisioning and managing Azure SQL resources via Azure Resource Manager.


> **⚠️ Management vs Data Plane**

> - **This SDK (Azure.ResourceManager.Sql)**: Create servers, databases, elastic pools, configure firewall rules, manage failover groups

> - **Data Plane SDK (Microsoft.Data.SqlClient)**: Execute queries, stored procedures, manage connections


Installation


```bash

dotnet add package Azure.ResourceManager.Sql

dotnet add package Azure.Identity

```


**Current Versions**: Stable v1.3.0, Preview v1.4.0-beta.3


Environment Variables


```bash

AZURE_SUBSCRIPTION_ID=<your-subscription-id>

# For service principal auth (optional)

AZURE_TENANT_ID=<tenant-id>

AZURE_CLIENT_ID=<client-id>

AZURE_CLIENT_SECRET=<client-secret>

```


Authentication


```csharp

using Azure.Identity;

using Azure.ResourceManager;

using Azure.ResourceManager.Sql;


// Always use DefaultAzureCredential

var credential = new DefaultAzureCredential();

var armClient = new ArmClient(credential);


// Get subscription

var subscriptionId = Environment.GetEnvironmentVariable("AZURE_SUBSCRIPTION_ID");

var subscription = armClient.GetSubscriptionResource(

new ResourceIdentifier($"/subscriptions/{subscriptionId}"));

```


Resource Hierarchy


```

ArmClient

└── SubscriptionResource

└── ResourceGroupResource

└── SqlServerResource

├── SqlDatabaseResource

├── ElasticPoolResource

│ └── ElasticPoolDatabaseResource

├── SqlFirewallRuleResource

├── FailoverGroupResource

├── ServerBlobAuditingPolicyResource

├── EncryptionProtectorResource

└── VirtualNetworkRuleResource

```


Core Workflow


1. Create SQL Server


```csharp

using Azure.ResourceManager.Sql;

using Azure.ResourceManager.Sql.Models;


// Get resource group

var resourceGroup = await subscription

.GetResourceGroupAsync("my-resource-group");


// Define server

var serverData = new SqlServerData(AzureLocation.EastUS)

{

AdministratorLogin = "sqladmin",

AdministratorLoginPassword = "YourSecurePassword123!",

Version = "12.0",

MinimalTlsVersion = SqlMinimalTlsVersion.Tls1_2,

PublicNetworkAccess = ServerNetworkAccessFlag.Enabled

};


// Create server (long-running operation)

var serverCollection = resourceGroup.Value.GetSqlServers();

var operation = await serverCollection.CreateOrUpdateAsync(

WaitUntil.Completed,

"my-sql-server",

serverData);


SqlServerResource server = operation.Value;

```


2. Create SQL Database


```csharp

var databaseData = new SqlDatabaseData(AzureLocation.EastUS)

{

Sku = new SqlSku("S0") { Tier = "Standard" },

MaxSizeBytes = 2L * 1024 * 1024 * 1024, // 2 GB

Collation = "SQL_Latin1_General_CP1_CI_AS",

RequestedBackupStorageRedundancy = SqlBackupStorageRedundancy.Local

};


var databaseCollection = server.GetSqlDatabases();

var dbOperation = await databaseCollection.CreateOrUpdateAsync(

WaitUntil.Completed,

"my-database",

databaseData);


SqlDatabaseResource database = dbOperation.Value;

```


3. Create Elastic Pool


```csharp

var poolData = new ElasticPoolData(AzureLocation.EastUS)

{

Sku = new SqlSku("StandardPool")

{

Tier = "Standard",

Capacity = 100 // 100 eDTUs

},

PerDatabaseSettings = new ElasticPoolPerDatabaseSettings

{

MinCapacity = 0,

MaxCapacity = 100

}

};


var poolCollection = server.GetElasticPools();

var poolOperation = await poolCollection.CreateOrUpdateAsync(

WaitUntil.Completed,

"my-elastic-pool",

poolData);


ElasticPoolResource pool = poolOperation.Value;

```


4. Add Database to Elastic Pool


```csharp

var databaseData = new SqlDatabaseData(AzureLocation.EastUS)

{

ElasticPoolId = pool.Id

};


await databaseCollection.CreateOrUpdateAsync(

WaitUntil.Completed,

"pooled-database",

databaseData);

```


5. Configure Firewall Rules


```csharp

// Allow Azure servic

🎯 Best For

  • Claude users
  • Software engineers
  • Development teams
  • Tech leads

💡 Use Cases

  • Code quality improvement
  • Best practice enforcement

📖 How to Use This Skill

  1. 1

    Install the Skill

    Copy the install command from the Terminal tab and run it. The SKILL.md file downloads to your local skills directory.

  2. 2

    Load into Your AI Assistant

    Open Claude and reference the skill. Paste the SKILL.md content or use the system prompt tab.

  3. 3

    Apply Azure Resource Manager Sql Dotnet to Your Work

    Open your project in the AI assistant and ask it to apply the skill. Start with a small module to verify the output quality.

  4. 4

    Review and Refine

    Review AI suggestions before committing. Run tests, check for regressions, and iterate on the skill output.

❓ Frequently Asked Questions

Is Azure Resource Manager Sql Dotnet compatible with Cursor and VS Code?

Yes — this skill works with any AI coding assistant including Cursor, VS Code with Copilot, and JetBrains IDEs.

Do I need specific dependencies for Azure Resource Manager Sql Dotnet?

Check the install command and Works With section. Most code skills only require the AI assistant and your codebase.

How do I install Azure Resource Manager Sql Dotnet?

Copy the install command from the Terminal tab and run it. The skill downloads to ./skills/azure-resource-manager-sql-dotnet/SKILL.md, ready to use.

Can I customize this skill for my team?

Absolutely. Edit the SKILL.md file to add team-specific instructions, examples, or workflows.

⚠️ Common Mistakes to Avoid

Skipping validation

Always test AI-generated code changes, even for simple refactors.

Missing dependency updates

Check if the skill requires updated dependencies or new packages.

🔗 Related Skills