Example#

{{< chooser language "typescript,python,go,csharp,yaml" >}}

{{% choosable language typescript %}}

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
import * as mssql from "@pulumiverse/mssql";
 
const current = azure.core.getClientConfig({});
 
const resourceGroup = new azure.core.ResourceGroup("resource-group", {
    name: "pulumi-mssql-test",
    location: "eastus",
});
 
const server = new azure.mssql.Server("server", {
    name: "pulumi-mssql-test",
    resourceGroupName: resourceGroup.name,
    location: resourceGroup.location,
    version: "12.0",
    minimumTlsVersion: "1.2",
    administratorLogin: "sadmin",
    administratorLoginPassword: "Str0ngPa$word12",
    azureadAdministrator: {
        loginUsername: "pulumi-app",
        objectId: current.then(current => current.objectId),
        tenantId: current.then(current => current.tenantId),
    },
});
 
const databaseFirewallRule = new azure.mssql.FirewallRule("database-firewall-rule", {
    name: "azure",
    serverId: server.id,
    startIpAddress: "0.0.0.0",
    endIpAddress: "0.0.0.0",
});
 
const database = new azure.mssql.Database("database", {
    name: "db",
    serverId: server.id,
    licenseType: "LicenseIncluded",
    maxSizeGb: 2,
    skuName: "Basic",
});
 
const providerMssql = new mssql.Provider("provider-mssql", {
    hostname: server.fullyQualifiedDomainName,
    azureAuth: {},
}, {
    dependsOn: [
        database,
        databaseFirewallRule,
    ],
});
 
const databaseId = mssql.getDatabaseOutput({
    name: database.name,
}, {
    provider: providerMssql
});
const databaseRoleOwner = mssql.getDatabaseRoleOutput({
    databaseId: databaseId.id,
    name: "db_owner",
}, {
    provider: providerMssql
});
 
const dbUser = new mssql.SqlLogin("db-user", {
    name: "example",
    password: "Str0ngPa$word12",
}, {
    provider: providerMssql,
});
const dbRoleMember = new mssql.DatabaseRoleMember("db-role-member", {
    roleId: databaseRoleOwner.id,
    memberId: dbUser.id,
}, {
    provider: providerMssql,
});

{{% /choosable %}}

{{% choosable language python %}}

import pulumi
import pulumi_azure as azure
import pulumiverse_mssql as mssql
 
current = azure.core.get_client_config()
resource_group = azure.core.ResourceGroup(
    "resource-group", name="pulumi-mssql-test", location="eastus"
)
 
server = azure.mssql.Server(
    "server",
    name="pulumi-mssql-test",
    resource_group_name=resource_group.name,
    location=resource_group.location,
    version="12.0",
    minimum_tls_version="1.2",
    administrator_login="sadmin",
    administrator_login_password="Str0ngPa$word12",
    azuread_administrator=azure.mssql.ServerAzureadAdministratorArgs(
        login_username="pulumi-app",
        object_id=current.object_id,
        tenant_id=current.tenant_id,
    ),
)
 
database = azure.mssql.Database(
    "database",
    name="db",
    server_id=server.id,
    license_type="LicenseIncluded",
    max_size_gb=2,
    sku_name="Basic",
)
 
database_firewall_rule = azure.mssql.FirewallRule(
    "database-firewall-rule",
    name="azure",
    server_id=server.id,
    start_ip_address="0.0.0.0",
    end_ip_address="0.0.0.0",
)
 
provider_mssql = mssql.Provider(
    "provider-mssql",
    hostname=server.fully_qualified_domain_name,
    azure_auth=mssql.ProviderAzureAuthArgs(),
    opts=pulumi.ResourceOptions(
        depends_on=[
            database,
            database_firewall_rule,
        ]
    ),
)
 
database_id = mssql.get_database_output(
    name=database.name,
    opts=pulumi.InvokeOptions(provider=provider_mssql),
)
 
database_role_owner = mssql.get_database_role_output(
    database_id=database_id.id,
    name="db_owner",
    opts=pulumi.InvokeOptions(provider=provider_mssql),
)
 
db_user = mssql.SqlLogin(
    "db-user",
    name="example",
    password="Str0ngPa$word12",
    opts=pulumi.ResourceOptions(provider=provider_mssql),
)
 
db_role_member = mssql.DatabaseRoleMember(
    "db-role-member",
    role_id=database_role_owner.id,
    member_id=db_user.id,
    opts=pulumi.ResourceOptions(provider=provider_mssql),
)

{{% /choosable %}}

{{% choosable language go %}}

package main
 
import (
	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
	azuresql "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/mssql"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
	"github.com/pulumiverse/pulumi-mssql/sdk/go/mssql"
)
 
func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
 
		current, err := core.GetClientConfig(ctx, nil, nil)
		if err != nil {
			return err
		}
 
		resourceGroup, err := core.NewResourceGroup(ctx, "resource-group", &core.ResourceGroupArgs{
			Name:     pulumi.String("pulumi-mssql-test"),
			Location: pulumi.String("eastus"),
		})
		if err != nil {
			return err
		}
 
		server, err := azuresql.NewServer(ctx, "server", &azuresql.ServerArgs{
			Name:                       pulumi.String("pulumi-mssql-test"),
			ResourceGroupName:          resourceGroup.Name,
			Location:                   resourceGroup.Location,
			Version:                    pulumi.String("12.0"),
			MinimumTlsVersion:          pulumi.String("1.2"),
			AdministratorLogin:         pulumi.String("sadmin"),
			AdministratorLoginPassword: pulumi.String("Str0ngPa$word12"),
			AzureadAdministrator: &azuresql.ServerAzureadAdministratorArgs{
				LoginUsername: pulumi.String("pulumi-app"),
				ObjectId:      pulumi.String(current.ObjectId),
				TenantId:      pulumi.String(current.TenantId),
			},
		})
		if err != nil {
			return err
		}
 
		database, err := azuresql.NewDatabase(ctx, "database", &azuresql.DatabaseArgs{
			Name:        pulumi.String("db"),
			ServerId:    server.ID(),
			LicenseType: pulumi.String("LicenseIncluded"),
			MaxSizeGb:   pulumi.Int(2),
			SkuName:     pulumi.String("Basic"),
		})
		if err != nil {
			return err
		}
 
		databaseFirewallRule, err := azuresql.NewFirewallRule(ctx, "database-firewall-rule", &azuresql.FirewallRuleArgs{
			Name:           pulumi.String("azure"),
			ServerId:       server.ID(),
			StartIpAddress: pulumi.String("0.0.0.0"),
			EndIpAddress:   pulumi.String("0.0.0.0"),
		})
		if err != nil {
			return err
		}
		providerMssql, err := mssql.NewProvider(ctx, "provider-mssql", &mssql.ProviderArgs{
			Hostname:  server.FullyQualifiedDomainName,
			AzureAuth: mssql.ProviderAzureAuthArgs{},
		}, pulumi.DependsOn([]pulumi.Resource{
			database,
			databaseFirewallRule,
		}))
		if err != nil {
			return err
		}
 
		databaseId := mssql.LookupDatabaseOutput(ctx, mssql.LookupDatabaseOutputArgs{
			Name: database.Name,
		}, pulumi.Provider(providerMssql))
 
		databaseRoleOwner := mssql.LookupDatabaseRoleOutput(ctx, mssql.LookupDatabaseRoleOutputArgs{
			DatabaseId: databaseId.Id(),
			Name:       pulumi.String("db_owner"),
		}, pulumi.Provider(providerMssql))
 
		dbUser, err := mssql.NewSqlLogin(ctx, "db-user", &mssql.SqlLoginArgs{
			Name:     pulumi.String("example"),
			Password: pulumi.String("Str0ngPa$word12"),
		}, pulumi.Provider(providerMssql))
		if err != nil {
			return err
		}
 
		_, err = mssql.NewDatabaseRoleMember(ctx, "db-role-member", &mssql.DatabaseRoleMemberArgs{
			RoleId:   databaseRoleOwner.Id(),
			MemberId: dbUser.ID(),
		}, pulumi.Provider(providerMssql))
		if err != nil {
			return err
		}
		return nil
	})
}

{{% /choosable %}}

{{% choosable language csharp %}}

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
using Mssql = Pulumiverse.Mssql;
 
return await Deployment.RunAsync(async () =>
{
    var current = await Azure.Core.GetClientConfig.InvokeAsync();
 
    var resourceGroup = new Azure.Core.ResourceGroup(
        "resource-group",
        new() { Name = "pulumi-mssql-test", Location = "eastus", }
    );
 
    var server = new Azure.MSSql.Server(
        "server",
        new()
        {
            Name = "pulumi-mssql-test",
            ResourceGroupName = resourceGroup.Name,
            Location = resourceGroup.Location,
            Version = "12.0",
            MinimumTlsVersion = "1.2",
            AdministratorLogin = "sadmin",
            AdministratorLoginPassword = "Str0ngPa$word12",
            AzureadAdministrator = new Azure.MSSql.Inputs.ServerAzureadAdministratorArgs
            {
                LoginUsername = "pulumi-app",
                ObjectId = current.ObjectId,
                TenantId = current.TenantId,
            },
        }
    );
 
    var database = new Azure.MSSql.Database(
        "database",
        new()
        {
            Name = "db",
            ServerId = server.Id,
            LicenseType = "LicenseIncluded",
            MaxSizeGb = 2,
            SkuName = "Basic",
        }
    );
 
    var databaseFirewallRule = new Azure.MSSql.FirewallRule(
        "database-firewall-rule",
        new()
        {
            Name = "azure",
            ServerId = server.Id,
            StartIpAddress = "0.0.0.0",
            EndIpAddress = "0.0.0.0",
        }
    );
 
    var providerMssql = new Mssql.Provider(
        "provider-mssql",
        new()
        {
            Hostname = server.FullyQualifiedDomainName,
            AzureAuth = new Mssql.Inputs.ProviderAzureAuthArgs(),
        },
        new CustomResourceOptions
        {
            DependsOn = new Resource[] { database, databaseFirewallRule, },
        }
    );
 
    var databaseId = Mssql.GetDatabase.Invoke(
        new() { Name = database.Name, },
        new InvokeOptions { Provider = providerMssql }
    );
 
    var databaseRoleOwner = Mssql.GetDatabaseRole.Invoke(
        new()
        {
            DatabaseId = databaseId.Apply(getDatabaseResult => getDatabaseResult.Id),
            Name = "db_owner",
        },
        new InvokeOptions { Provider = providerMssql }
    );
 
    var dbUser = new Mssql.SqlLogin(
        "db-user",
        new() { Name = "example", Password = "Str0ngPa$word12", },
        new CustomResourceOptions { Provider = providerMssql, }
    );
 
    var dbRoleMember = new Mssql.DatabaseRoleMember(
        "db-role-member",
        new()
        {
            RoleId = databaseRoleOwner.Apply(getDatabaseRoleResult => getDatabaseRoleResult.Id),
            MemberId = dbUser.Id,
        },
        new CustomResourceOptions { Provider = providerMssql, }
    );
});

{{% /choosable %}}

{{% choosable language yaml %}}

name: mssql-test
runtime: yaml
description: A Pulumi YAML project to test the new MSSQL provider
 
variables:
  current:
    fn::invoke:
      function: azure:core:getClientConfig
      options:
        provider: ${provider}
 
  database-id:
    fn::invoke:
      function: mssql:getDatabase
      arguments:
        name: ${database.name}
      options:
        provider: ${provider-mssql}
 
  database-role-owner:
    fn::invoke:
      function: mssql:getDatabaseRole
      arguments:
        databaseId: ${database-id.id}
        name: "db_owner"
      options:
        provider: ${provider-mssql}
 
outputs: {}
 
resources:
  provider:
    type: pulumi:providers:azure
    properties:
      skipProviderRegistration: true
    options:
      version: 5.43.0
 
  resource-group:
    type: azure:core:ResourceGroup
    properties:
      name: "pulumi-mssql-test"
      location: "eastus"
 
  server:
    type: azure:mssql:Server
    properties:
      name: "pulumi-mssql-test"
      resourceGroupName: ${resource-group.name}
      location: ${resource-group.location}
      version: '12.0'
      minimumTlsVersion: '1.2'
      administratorLogin: sadmin
      administratorLoginPassword: "Str0ngPa$$word12"
      azureadAdministrator:
        loginUsername: "pulumi-app"
        objectId: ${current.objectId}
        tenantId: ${current.tenantId}
    options:
      provider: ${provider}
 
  database-firewall-rule:
    type: azure:mssql:FirewallRule
    properties:
      name: azure
      serverId: ${server.id}
      startIpAddress: "0.0.0.0"
      endIpAddress: "0.0.0.0"
    options:
      provider: ${provider}
 
  database:
    type: azure:mssql:Database
    properties:
      name: "db"
      serverId: ${server.id}
      licenseType: LicenseIncluded
      maxSizeGb: 2
      skuName: Basic
    options:
      provider: ${provider}
 
  provider-mssql:
    type: pulumi:providers:mssql
    properties:
      hostname: ${server.fullyQualifiedDomainName}
      azureAuth: {}
    options:
      dependsOn:
        - ${database}
        - ${database-firewall-rule}
 
  db-user:
    type: mssql:SqlLogin
    properties:
      name: example
      password: "Str0ngPa$$word12"
    options:
      provider: ${provider-mssql}
 
  db-role-member:
    type: mssql:DatabaseRoleMember
    properties:
      roleId: ${database-role-owner.id}
      memberId: ${db-user.id}
    options:
      provider: ${provider-mssql}

{{% /choosable %}}

{{< /chooser >}}

Updated

Was this page helpful?