Configure Azure Synapse Workspace SQL Pool Table Data Sets

The azure-native:datashare:SynapseWorkspaceSqlPoolTableDataSet resource, part of the Pulumi Azure Native provider, registers a Synapse Workspace SQL Pool table as a dataset within an Azure Data Share. This guide focuses on one capability: adding Synapse SQL Pool tables to existing shares.

This resource references existing Data Share infrastructure and Synapse tables through Azure resource IDs. The example is intentionally minimal. Combine it with Data Share invitations, dataset mappings, and synchronization schedules for complete data sharing workflows.

Add a Synapse SQL Pool table to a data share

Data providers need to register specific tables from their Synapse SQL Pools as datasets, enabling recipients to access structured data through the Data Share service.

import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";

const synapseWorkspaceSqlPoolTableDataSet = new azure_native.datashare.SynapseWorkspaceSqlPoolTableDataSet("synapseWorkspaceSqlPoolTableDataSet", {
    accountName: "sourceAccount",
    dataSetName: "dataset1",
    kind: "SynapseWorkspaceSqlPoolTable",
    resourceGroupName: "SampleResourceGroup",
    shareName: "share1",
    synapseWorkspaceSqlPoolTableResourceId: "/subscriptions/0f3dcfc3-18f8-4099-b381-8353e19d43a7/resourceGroups/SampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/sqlPools/ExampleSqlPool/schemas/dbo/tables/table1",
});
import pulumi
import pulumi_azure_native as azure_native

synapse_workspace_sql_pool_table_data_set = azure_native.datashare.SynapseWorkspaceSqlPoolTableDataSet("synapseWorkspaceSqlPoolTableDataSet",
    account_name="sourceAccount",
    data_set_name="dataset1",
    kind="SynapseWorkspaceSqlPoolTable",
    resource_group_name="SampleResourceGroup",
    share_name="share1",
    synapse_workspace_sql_pool_table_resource_id="/subscriptions/0f3dcfc3-18f8-4099-b381-8353e19d43a7/resourceGroups/SampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/sqlPools/ExampleSqlPool/schemas/dbo/tables/table1")
package main

import (
	datashare "github.com/pulumi/pulumi-azure-native-sdk/datashare/v3"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := datashare.NewSynapseWorkspaceSqlPoolTableDataSet(ctx, "synapseWorkspaceSqlPoolTableDataSet", &datashare.SynapseWorkspaceSqlPoolTableDataSetArgs{
			AccountName:                            pulumi.String("sourceAccount"),
			DataSetName:                            pulumi.String("dataset1"),
			Kind:                                   pulumi.String("SynapseWorkspaceSqlPoolTable"),
			ResourceGroupName:                      pulumi.String("SampleResourceGroup"),
			ShareName:                              pulumi.String("share1"),
			SynapseWorkspaceSqlPoolTableResourceId: pulumi.String("/subscriptions/0f3dcfc3-18f8-4099-b381-8353e19d43a7/resourceGroups/SampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/sqlPools/ExampleSqlPool/schemas/dbo/tables/table1"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;

return await Deployment.RunAsync(() => 
{
    var synapseWorkspaceSqlPoolTableDataSet = new AzureNative.DataShare.SynapseWorkspaceSqlPoolTableDataSet("synapseWorkspaceSqlPoolTableDataSet", new()
    {
        AccountName = "sourceAccount",
        DataSetName = "dataset1",
        Kind = "SynapseWorkspaceSqlPoolTable",
        ResourceGroupName = "SampleResourceGroup",
        ShareName = "share1",
        SynapseWorkspaceSqlPoolTableResourceId = "/subscriptions/0f3dcfc3-18f8-4099-b381-8353e19d43a7/resourceGroups/SampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/sqlPools/ExampleSqlPool/schemas/dbo/tables/table1",
    });

});
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.datashare.SynapseWorkspaceSqlPoolTableDataSet;
import com.pulumi.azurenative.datashare.SynapseWorkspaceSqlPoolTableDataSetArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var synapseWorkspaceSqlPoolTableDataSet = new SynapseWorkspaceSqlPoolTableDataSet("synapseWorkspaceSqlPoolTableDataSet", SynapseWorkspaceSqlPoolTableDataSetArgs.builder()
            .accountName("sourceAccount")
            .dataSetName("dataset1")
            .kind("SynapseWorkspaceSqlPoolTable")
            .resourceGroupName("SampleResourceGroup")
            .shareName("share1")
            .synapseWorkspaceSqlPoolTableResourceId("/subscriptions/0f3dcfc3-18f8-4099-b381-8353e19d43a7/resourceGroups/SampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/sqlPools/ExampleSqlPool/schemas/dbo/tables/table1")
            .build());

    }
}
resources:
  synapseWorkspaceSqlPoolTableDataSet:
    type: azure-native:datashare:SynapseWorkspaceSqlPoolTableDataSet
    properties:
      accountName: sourceAccount
      dataSetName: dataset1
      kind: SynapseWorkspaceSqlPoolTable
      resourceGroupName: SampleResourceGroup
      shareName: share1
      synapseWorkspaceSqlPoolTableResourceId: /subscriptions/0f3dcfc3-18f8-4099-b381-8353e19d43a7/resourceGroups/SampleResourceGroup/providers/Microsoft.Synapse/workspaces/ExampleWorkspace/sqlPools/ExampleSqlPool/schemas/dbo/tables/table1

The synapseWorkspaceSqlPoolTableResourceId property points to the full Azure resource path of your Synapse table, including subscription, resource group, workspace, SQL pool, schema, and table name. The accountName and shareName properties identify where this dataset lives within your Data Share hierarchy. The kind property must be set to “SynapseWorkspaceSqlPoolTable” to indicate this dataset type. Once registered, recipients can map this dataset to their own Synapse SQL Pools during share subscription.

Beyond these examples

This snippet focuses on Synapse SQL Pool table dataset registration. It’s intentionally minimal rather than a complete data sharing solution.

The example references pre-existing infrastructure such as Data Share accounts and shares, and Synapse workspaces with SQL pools, schemas, and tables. It focuses on dataset registration rather than provisioning the surrounding infrastructure.

To keep things focused, common Data Share patterns are omitted, including:

  • Dataset mapping configuration for recipients
  • Synchronization settings and schedules
  • Access permissions and role assignments
  • Multiple dataset types (Kusto, SQL DB, blob storage)

These omissions are intentional: the goal is to illustrate how the dataset registration is wired, not provide drop-in data sharing modules. See the SynapseWorkspaceSqlPoolTableDataSet resource reference for all available configuration options.

Let's configure Azure Synapse Workspace SQL Pool Table Data Sets

Get started with Pulumi Cloud, then follow our quick setup guide to deploy this infrastructure.

Try Pulumi Cloud for FREE

Frequently Asked Questions

Resource Configuration
What properties are required to create a Synapse Workspace SQL Pool Table data set?
You must provide kind (set to “SynapseWorkspaceSqlPoolTable”), synapseWorkspaceSqlPoolTableResourceId, accountName, dataSetName, resourceGroupName, and shareName.
What's the correct format for the Synapse table resource ID?
The synapseWorkspaceSqlPoolTableResourceId must follow this format: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlPools/{sqlPoolName}/schemas/{schemaName}/tables/{tableName}.
What value should I use for the kind property?
Set kind to “SynapseWorkspaceSqlPoolTable”. This is the expected value for this data set type.
Lifecycle & Immutability
What properties can't be changed after creating the data set?
The properties accountName, dataSetName, resourceGroupName, and shareName are immutable. Changing any of these will force resource replacement.
What is the dataSetId property?
dataSetId is a computed output property that provides a unique identifier for the data set resource.
Import & Migration
How do I import an existing Synapse Workspace SQL Pool Table data set?
Use the import command: pulumi import azure-native:datashare:SynapseWorkspaceSqlPoolTableDataSet <name> /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataShare/accounts/{accountName}/shares/{shareName}/dataSets/{dataSetName}.

Using a different cloud?

Explore analytics guides for other cloud providers: