Hands-on Lab • Azure Databricks Serverless

Databricks Serverless & NCC

A practical, screenshot-driven learning guide covering OAuth U2M, Network Connectivity Configuration, Azure Private Endpoint approval, DNS validation, and TCP connectivity to Azure SQL Server.

Purpose

An evolving hands-on guide for understanding Azure Databricks Serverless, Network Connectivity Configuration (NCC), and private connectivity to Azure SQL Server. Each lab step includes configuration, reasoning, screenshots, and validation tests.

Current Lab Progress

  1. Create an Azure Databricks Serverless workspace.
  2. Create a SQL Server connection using OAuth U2M: Custom-managed.
  3. Complete Microsoft Entra browser authorization and confirm Successfully authorized.
  4. Verify source tables are visible through the Databricks Catalog.
  5. Attach the workspace to NCC-Restrict.
  6. Add a private endpoint rule for the Azure SQL Server using subresource sqlServer.
  7. Approve the private endpoint connection on the Azure SQL Server.
  8. Verify the NCC rule reaches ESTABLISHED.
  9. Validate DNS resolves to a private IP.
  10. Validate TCP connectivity to port 1433.

Step 1 — Azure Databricks Serverless Workspace

Create the Azure Databricks workspace as a Serverless workspace. Serverless compute is enabled and becomes the compute plane used for the connection and NCC tests.

Lab note: NCC provides a controlled path for supported private outbound connectivity from Serverless compute.
Azure portal showing the Azure Databricks Serverless workspace
Step 1: Azure Databricks Serverless workspace

Step 2 — SQL Server Connection

Create a Databricks connection with:

Databricks SQL Server connection basics
Step 2: SQL Server connection basics
Databricks OAuth authentication settings
Step 2: OAuth authentication settings

Browser Authorization

Click Sign in with Microsoft Entra ID. The lab encountered a popup/window.opener issue initially. After completing browser authorization, Databricks displayed Successfully authorized.

Validation: OAuth authorization is complete.
Browser authorization popup behavior
Browser authorization flow
Databricks showing successfully authorized
OAuth authorization completed successfully

Catalog Validation

After authorization, the connection can be used from the Databricks Catalog. The source objects/tables are listed, demonstrating successful metadata discovery through the connection.

Databricks connection workflow
Catalog connection workflow
Databricks connection workflow completed
Connection workflow completed

NCC Configuration

The workspace Networking section shows NCC-Restrict as the Network Connectivity Configuration. The NCC is used to manage private endpoint connectivity from Serverless compute to supported Azure resources.

Serverless workspace attached to NCC-Restrict
NCC configuration: NCC-Restrict attached to the workspace

Add Private Endpoint Rule

In the NCC, select Add private endpoint rule and provide:

Select Add to create the private endpoint request.

Approve the Private Endpoint

On the Azure SQL Server resource, open Networking → Private endpoint connections. Select the Databricks request and choose Approve. In this lab the Azure-side connection became Approved.

Azure SQL Server private endpoint connection approval
Azure SQL Server: approve the private endpoint connection

Verify NCC — ESTABLISHED

Return to Databricks Account → Security → Network connectivity configuration → NCC-Restrict → Private endpoint rules and refresh until the connection status becomes ESTABLISHED.

Lab result: The SQL Server private endpoint rule reached ESTABLISHED after Azure-side approval.
Databricks NCC private endpoint with established status
NCC private endpoint rule: ESTABLISHED

Connectivity Test #1 — DNS

Run this in a Databricks Serverless notebook:

import socket
import ipaddress

fqdn = "sqlserver.database.windows.net"
port = 1433

addresses = socket.getaddrinfo(
    fqdn,
    port,
    type=socket.SOCK_STREAM
)

ips = sorted({item[4][0] for item in addresses})

print(f"FQDN: {fqdn}")

for ip in ips:
    print(f"Resolved IP: {ip} | Private: {ipaddress.ip_address(ip).is_private}")

Observed: | Private: True.

Databricks Serverless notebook validating DNS and private IP
DNS validation: hostname resolves to a private IP

Connectivity Test #2 — TCP 1433

Test the Private Link hostname on TCP port 1433:

import socket
import time

fqdn = "sqlserver.privatelink.database.windows.net"
port = 1433

start = time.time()

try:
    with socket.create_connection((fqdn, port), timeout=10):
        elapsed = round((time.time() - start) * 1000, 2)
        print(f"SUCCESS: {fqdn}:{port} reachable in {elapsed} ms")
except Exception as e:
    print(f"FAILED: {fqdn}:{port}")
    print(type(e).__name__, str(e))

Observed: SUCCESS: sqlserver.privatelink.database.windows.net:1433 reachable in .

Databricks Serverless notebook validating TCP connectivity to port 1433
TCP validation: SQL Server port 1433 is reachable

End-to-End NCC Flow

Serverless Workspace
↓
NCC-Restrict
↓
Private Endpoint Rule
↓
Azure SQL / sqlServer
↓
Azure Approval
↓
ESTABLISHED
↓
DNS → Private IP
↓
TCP 1433 → SUCCESS
↓
Databricks Catalog / Connection Validation

What Each Test Proves

TestPurposeLab Result
NCC statusPrivate endpoint lifecycle completedESTABLISHED
Azure approvalDestination resource accepted the requestApproved
DNSHostname resolves to private address — Private: True
TCP 1433Serverless can reach SQL ServerSUCCESS —
CatalogAuthenticated connection discovers source tablesTables visible

Key Learning Points

Next Topics

Lab Screenshots

Azure portal — Serverless workspace
Azure portal — Serverless workspace
Databricks — Connection basics
Databricks — Connection basics
Databricks — OAuth authentication
Databricks — OAuth authentication
Browser authorization / popup behavior
Browser authorization / popup behavior
Databricks — Successfully authorized
Databricks — Successfully authorized
Connection workflow screenshot
Connection workflow screenshot
Connection workflow screenshot
Connection workflow screenshot
Serverless workspace — NCC-Restrict
Serverless workspace — NCC-Restrict
Azure SQL Server — Approve private endpoint connection
Azure SQL Server — Approve private endpoint connection
Databricks NCC — private endpoint ESTABLISHED
Databricks NCC — private endpoint ESTABLISHED
Serverless notebook — DNS/private IP validation
Serverless notebook — DNS/private IP validation
Serverless notebook — TCP 1433 validation
Serverless notebook — TCP 1433 validation