Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Diese Seite enthält Anleitungen für Arbeitsbereichsadministratoren, die Benutzern in einem Azure Databricks-Arbeitsbereich die Berechtigung Consumer access zuerkennen möchten. Es enthält ein Python-Skript zum Verwalten von Gruppen mithilfe des Databricks SDK für Python.
Hintergrund
Arbeitsbereiche werden häufig so konfiguriert, dass allen Benutzern in einem Arbeitsbereich sowohl die Berechtigungen " Arbeitsbereichzugriff " als auch "Databricks SQL " bei der Bereitstellung automatisch zugewiesen werden. Da Berechtigungen additiv sind, sehen Benutzer nur den vereinfachten Arbeitsbereich, wenn der Verbraucherzugriff ihre einzige Berechtigung ist. Wenn einer Gruppe eine Berechtigung mit größeren Privilegien als der Zugriff für Verbraucher gewährt wird, erhält keiner der Benutzer in dieser Gruppe nur die Verbrauchererfahrung.
Diese Seite bietet einen Workflow zum Klonen der vorhandenen users Systemgruppe zu einer neuen Gruppe, die arbeitsbereichszugriff und SQL-Zugriffsberechtigungen für Databricks behält. Anschließend wird erläutert, wie Sie die users Gruppe neu konfigurieren, damit neu bereitgestellte Benutzer standardmäßig nur die Berechtigung für den Verbraucherzugriff zugewiesen werden. Bei diesem Setup müssen Benutzer, die einen Zugriff auf eine höhere Ebene benötigen, der neuen Gruppe hinzugefügt werden, wenn sie dem Arbeitsbereich hinzugefügt werden.
Verbraucherzugriff gewähren
Wenn Sie die users Gruppe verwendet haben, um allen Benutzern des Arbeitsbereichs Autorenrechte zu gewähren, führen Sie die folgenden Schritte aus, um einigen Benutzern nur die Konsumentenzugriffsberechtigung zu gewähren.
Duplizieren Sie die Systemgruppe des Arbeitsbereichs
users:- Erstellen Sie eine neue Kontogruppe, die alle aktuellen Mitglieder der Gruppe des Arbeitsbereichs
usersenthält. - Weisen Sie höherprivilegierte Berechtigungen zu, z. B. Arbeitsbereichszugriff oder Databricks SQL-Zugriff, an diese neue Gruppe anstelle der Standardgruppe
userszu.
- Erstellen Sie eine neue Kontogruppe, die alle aktuellen Mitglieder der Gruppe des Arbeitsbereichs
Entfernen Sie höherwertige Berechtigungen aus der
usersGruppe: Auf diese Weise können Sie neue Benutzer als Nutzer hinzufügen, ohne dass sie von Gruppenberechtigungen automatisch aktualisiert werden.Fügen Sie neue Benutzer als Verbraucher hinzu: Fügen Sie Benutzer hinzu, die nur über die Benutzerzugriffsoberfläche für den Arbeitsbereich verfügen sollen.
Verwenden des Databricks SDK für Python zum Automatisieren der Verwaltung von Berechtigungen
Das folgende Python-Skript automatisiert den Prozess der Duplizierung der users Gruppe und das Zuweisen geeigneter Berechtigungen. Es verwendet das Databricks SDK für Python und benötigt ein Dienstkennzeichen mit Administratorberechtigungen für das Konto und die Arbeitsumgebung, die über OAuth authentifiziert werden. Siehe Autorisieren des Benutzerzugriffs auf Azure Databricks mit OAuth.
Voraussetzungen:
- Dienstprinzipal mit Administratorrechten
- Umgebungsvariablen festlegen:
-
DATABRICKS_ACCOUNT_ID(UUID aus der URL der Kontokonsole) -
DATABRICKS_WORKSPACE_ID(numerische ID aus der Arbeitsbereichs-URL) -
DATABRICKS_CLIENT_ID(Dienstprinzipal Client ID) -
DATABRICKS_CLIENT_SECRET(Dienstprinzipal Client Secret)
-
Beispielskript
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):
"""
Fetches the workspace group with the given name.
"""
group = list(workspace_client.groups.list(filter=f"displayName eq '{group_name}'"))[0]
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)
Nachdem Sie Ihre vorhandenen Gruppen dupliziert und berechtigungen erneut zugewiesen haben, können Sie Verbraucherzugriff auf die usersGruppe oder eine beliebige andere Gruppe gewähren, sodass neuen Benutzern automatisch dieser Zugriff gewährt wird, wenn sie dem Arbeitsbereich hinzugefügt werden.
Hinweis
Passen Sie Gruppennamen und Berechtigungen an die Richtlinien Ihrer Organisation und deren Benennungskonventionen an. Testen Sie immer Änderungen in einer Nichtproduktionsumgebung, bevor Sie sie allgemein anwenden.