jack_zaldivar
Databricks Employee
Databricks Employee

hi @noorbasha534 

Do you mean something like this?

import os
from databricks import sql
from databricks.sdk.core import Config, oauth_service_principal

# --- Set environment variables or supply directly ---
DATABRICKS_HOST = os.getenv("DATABRICKS_HOST")              # Databricks workspace URL
DATABRICKS_SQLWAREHOUSE_HTTP_PATH = os.getenv("DATABRICKS_SQLWAREHOUSE_HTTP_PATH")  # HTTP path for SQL Warehouse
DATABRICKS_CLIENT_ID = os.getenv("DATABRICKS_CLIENT_ID")    # Service principal Application (client) ID
DATABRICKS_CLIENT_SECRET = os.getenv("DATABRICKS_CLIENT_SECRET")  # Service principal secret/password

# --- Optionally set values directly ---
# DATABRICKS_HOST = "https://<your-databricks-instance>.cloud.databricks.com"
# DATABRICKS_SQLWAREHOUSE_HTTP_PATH = "<your-sql-warehouse-http-path>"
# DATABRICKS_CLIENT_ID = "<your-service-principal-client-id>"
# DATABRICKS_CLIENT_SECRET = "<your-service-principal-secret>"

# Create OAuth config for Service Principal
config = Config(
    host=DATABRICKS_HOST,
    client_id=DATABRICKS_CLIENT_ID,
    client_secret=DATABRICKS_CLIENT_SECRET,
)

# Authenticate via OIDC and connect
connection = sql.connect(
    server_hostname=DATABRICKS_HOST,
    http_path=DATABRICKS_SQLWAREHOUSE_HTTP_PATH,
    credential_provider=oauth_service_principal(config)
)

cursor = connection.cursor()
cursor.execute("SELECT current_date() as today")
result = cursor.fetchall()
for row in result:
    print(row)

cursor.close()
connection.close()