Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här sidan innehåller vägledning för arbetsyteadministratörer som vill ge Konsumentåtkomst till användare i en Azure Databricks-arbetsyta. Det innehåller ett Python-skript som hjälper dig att hantera grupper med Databricks SDK för Python.
Bakgrund
Arbetsytor är ofta konfigurerade så att alla användare på en arbetsyta tilldelas både åtkomst till arbetsytan och Databricks SQL-rättigheter automatiskt vid etablering. Eftersom rättigheter är additiva ser användarna bara den förenklade arbetsytan när konsumentåtkomst är deras enda behörighet. Om en grupp beviljas rättigheter med större behörighet än konsumentåtkomst får ingen av användarna i den gruppen endast konsumentupplevelsen.
Den här sidan innehåller ett arbetsflöde för att klona den befintliga users
systemgruppen till en ny grupp som behåller åtkomsten till arbetsytan och Databricks SQL-åtkomsträttigheter . Sedan förklaras hur du konfigurerar om gruppen users
så att nyligen etablerade användare som standard endast tilldelas behörigheten Konsumentåtkomst. Med den här konfigurationen måste användare som behöver åtkomst på högre nivå läggas till i den nya gruppen när de läggs till på arbetsytan.
Bevilja konsumentåtkomst
Om du har använt users
gruppen för att bevilja redigeringsbehörighet till alla användare på arbetsytan använder du följande steg för att tillåta att vissa användare endast beviljas behörighet för konsumentåtkomst.
Duplicera arbetsytans
users
systemgrupp:- Skapa en ny kontogrupp som innehåller alla aktuella medlemmar i arbetsytans
users
grupp. - Tilldela behörigheter med högre behörighet, till exempel åtkomst till arbetsyta eller Databricks SQL-åtkomst till den nya gruppen i stället för standardgruppen
users
.
- Skapa en ny kontogrupp som innehåller alla aktuella medlemmar i arbetsytans
Ta bort rättigheter med högre behörighet från
users
gruppen: På så sätt kan du lägga till nya användare som konsumenter utan att de uppgraderas automatiskt av grupprättigheter.Lägg till nya användare som konsumenter: Lägg till användare som bara ska ha användaråtkomst till arbetsytan.
Använda Databricks SDK för Python för att automatisera hanteringen av rättigheter
Följande Python-skript automatiserar processen med att duplicera users
gruppen och tilldela lämpliga rättigheter. Den använder Databricks SDK för Python och kräver ett huvudnamn för tjänsten med administratörsbehörighet för både kontot och arbetsytan, autentiserad med OAuth. Se Auktorisera interaktiv åtkomst till Azure Databricks-resurser med ett användarkonto med OAuth-.
Förutsättningar:
- Tjänstens huvudnamn med administratörsbehörighet
- Uppsättning miljövariabler:
-
DATABRICKS_ACCOUNT_ID
(UUID från kontokonsolens URL) -
DATABRICKS_WORKSPACE_ID
(numeriskt ID från arbetsytans URL) -
DATABRICKS_CLIENT_ID
(klient-ID för tjänstens huvudnamn) -
DATABRICKS_CLIENT_SECRET
(klienthemlighet för tjänstens huvudkonto)
-
Exempelskript
import os
import databricks.sdk as dbx
from databricks.sdk.service import iam
# Set the Databricks account host URL for your account's cloud
DATABRICKS_HOST = "https://accounts.azuredatabricks.net
"
Fetch credentials from environment variables
DATABRICKS_ACCOUNT_ID = os.getenv("DATABRICKS_ACCOUNT_ID")
DATABRICKS_WORKSPACE_ID = os.getenv("DATABRICKS_WORKSPACE_ID")
DATABRICKS_CLIENT_ID = os.getenv("DATABRICKS_CLIENT_ID")
DATABRICKS_CLIENT_SECRET = os.getenv("DATABRICKS_CLIENT_SECRET")
# Initialize Databricks account client
account_client = dbx.AccountClient(
host=DATABRICKS_HOST,
account_id=DATABRICKS_ACCOUNT_ID,
client_id=DATABRICKS_CLIENT_ID,
client_secret=DATABRICKS_CLIENT_SECRET,
)
print(f"Authenticated to Databricks account {DATABRICKS_ACCOUNT_ID}")
# Get workspace and initialize workspace client
workspace = account_client.workspaces.get(workspace_id=DATABRICKS_WORKSPACE_ID)
workspace_name = workspace.workspace_name
workspace_client = account_client.get_workspace_client(workspace)
print(f"Authenticated to Databricks workspace {DATABRICKS_WORKSPACE_ID}, '{workspace_name}'")
def get_workspace_group(group_name):
group = list(workspace_client.groups.list(filter=f"displayName eq '{group_name}'"))
print(f"Found workspace group: {group.display_name}")
print(f"Workspace {group.display_name} has {len(group.members)} members")
return group
def clone_workspace_group_to_account(workspace_group_name, new_account_group_name):
workspace_group = get_workspace_group(workspace_group_name)
group = account_client.groups.create(
display_name=new_account_group_name, members=workspace_group.members
)
print(f"Created account group: {new_account_group_name}")
print(f"Cloned workspace group {workspace_group.display_name} to account group {group.display_name}")
print(f"Account {group.display_name} has {len(group.members)} members")
return group
def add_account_group_to_workspace(account_group, workspace):
permissions = account_client.workspace_assignment.update(
workspace_id=workspace.workspace_id,
principal_id=account_group.id,
permissions=[iam.WorkspacePermission.USER],
)
print(f"Added account group {account_group.display_name} to workspace {workspace.workspace_id}, {workspace.workspace_name}")
return permissions
# Clone workspace 'users' group to new account group '{workspace_name}-contributors'
account_group = clone_workspace_group_to_account(
"users", f"{workspace_name}-contributors"
)
# Add account group '{workspace_name}-contributors' to the workspace
permissions = add_account_group_to_workspace(account_group, workspace)
När du har duplicerat dina existerande grupper och omfördelade behörigheter kan du ge konsumentåtkomst till gruppen users
, eller någon annan grupp, så att nya användare automatiskt beviljas åtkomst när de läggs till på arbetsytan.
Anmärkning
Justera gruppnamn och behörigheter så att de överensstämmer med organisationens principer och namngivningskonventioner. Testa alltid ändringar i en icke-produktionsmiljö innan du tillämpar dem brett.