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.
Von Bedeutung
Lakebase Autoscaling ist die neueste Version von Lakebase mit automatischer Berechnung, Skalierung bis Null, Verzweigung und sofortiger Wiederherstellung. Unterstützte Regionen finden Sie unter "Verfügbarkeit der Region". Wenn Sie ein Lakebase Provisioned-Benutzer sind, lesen Sie Lakebase Provisioned.
Lakebase-Projektberechtigungen können programmgesteuert mithilfe der standardmäßigen Azure Databricks Berechtigungs-API, der Azure Databricks CLI, Azure Databricks SDKs und Terraform verwaltet werden.
Eine Übersicht über Berechtigungstypen, Standardberechtigungen und das Verwalten von Berechtigungen in der Lakebase-Benutzeroberfläche finden Sie unter Verwalten von Projektberechtigungen.
Berechtigungsstufen
Die zulässigen Berechtigungsstufen für Lakebase-Projekte sind CAN_USE und CAN_MANAGE.
CAN_CREATE ist eine geerbte Ebene, die automatisch vom Arbeitsbereich zu allen Benutzern fließt und für ein Projekt nicht explizit erteilt oder widerrufen werden kann. Versucht, CAN_CREATE http 400 über die API zurückzugeben.
Die Berechtigungs-API identifiziert Projekte nach Projekt-ID (z. B my-app. ). Sie finden diesen Wert im project_id Feld des Projektstatus, der von den APIs "Projekt abrufen" und "Auflisten" zurückgegeben wird.
Hinweis
Das project_id Feld ist in REST-API-Antworten verfügbar, ist aber noch nicht in SDK- oder CLI-Antwortobjekten verfügbar. Wenn Sie ein SDK verwenden, können Sie die Projekt-ID aus dem name Feld extrahieren, indem Sie das projects/ Präfix entfernen (z. B projects/my-app . wird my-app).
REST API
Projektberechtigungen verwenden die standardmäßige Azure Databricks Berechtigungs-API an /api/2.0/permissions/database-projects/{project_id}.
Abrufen aktueller Berechtigungen
curl -X GET "https://${DATABRICKS_HOST}/api/2.0/permissions/database-projects/${PROJECT_ID}" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq
Gewähren oder Aktualisieren von Berechtigungen (PATCH)
curl -X PATCH "https://${DATABRICKS_HOST}/api/2.0/permissions/database-projects/${PROJECT_ID}" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"access_control_list": [
{
"user_name": "user@example.com",
"permission_level": "CAN_USE"
}
]
}'
Um Berechtigungen für eine Gruppe oder einen Dienstprinzipal zu erteilen, ersetzen Sie user_name durch group_name oder service_principal_name.
Hinweis
PATCH ist additiv und kann eine bereits bestehende höhere Berechtigung nicht herabstufen. Beispielsweise hat das Patchen von CAN_USE auf einen Benutzer, der bereits CAN_MANAGE hält, keine Auswirkungen. Wenn Sie eine Berechtigung herabstufen oder entfernen möchten, verwenden Sie stattdessen PUT.
Alle expliziten Berechtigungen (PUT) ersetzen
Warnung
PUT ersetzt die gesamte explizite ACL. Jeder Benutzer, Eine Gruppe oder ein Dienstprinzipal, der nicht im Anforderungstext enthalten ist, verliert seine explizit erteilte Berechtigung. Geerbte Berechtigungen (z. B. Arbeitsbereichsadministratoren) sind nicht betroffen.
curl -X PUT "https://${DATABRICKS_HOST}/api/2.0/permissions/database-projects/${PROJECT_ID}" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"access_control_list": [
{
"user_name": "user@example.com",
"permission_level": "CAN_MANAGE"
}
]
}'
Die vollständige Berechtigungs-API-Referenz finden Sie unter "Permissions API".
CLI
Verwenden Sie die databricks permissions Befehle (die die Berechtigungs-API umschließen), um Projektberechtigungen über die Befehlszeile zu verwalten.
Erteilen oder Aktualisieren von Berechtigungen
# PROJECT_ID is your project ID (e.g., my-app).
databricks permissions update database-projects ${PROJECT_ID} \
--json '{
"access_control_list": [
{
"user_name": "user@example.com",
"permission_level": "CAN_USE"
}
]
}'
Abrufen aktueller Berechtigungen
databricks permissions get database-projects ${PROJECT_ID}
Hinweis
Verwenden Sie databricks permissions (nicht databricks postgres) für die Projekt-ACL-Verwaltung. Der databricks postgres Befehl verwaltet Projektressourcen (wie Zweige, Rechenressourcen usw.), nicht Berechtigungen.
SDK
Verwenden Sie die schnittstelle WorkspaceClient.permissions im Python, Java oder go SDK, um Projektberechtigungen zu verwalten.
Python SDK
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.iam import AccessControlRequest, PermissionLevel
w = WorkspaceClient()
# Your project ID (e.g., "my-app")
PROJECT_ID = "<project-id>"
# Grant CAN_USE to a user (PATCH is additive and cannot downgrade)
w.permissions.update(
request_object_type="database-projects",
request_object_id=PROJECT_ID,
access_control_list=[
AccessControlRequest(
user_name="user@example.com",
permission_level=PermissionLevel.CAN_USE,
)
],
)
# Get current permissions
permissions = w.permissions.get(
request_object_type="database-projects",
request_object_id=PROJECT_ID,
)
print(permissions)
# Revoke or downgrade: use set() (PUT), not update() (PATCH)
# update() with an empty list is a no-op; set() replaces the full explicit ACL
w.permissions.set(
request_object_type="database-projects",
request_object_id=PROJECT_ID,
access_control_list=[
# Include every identity that should retain explicit access
AccessControlRequest(
user_name="owner@example.com",
permission_level=PermissionLevel.CAN_MANAGE,
)
],
)
Java SDK
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.iam.*;
WorkspaceClient w = new WorkspaceClient();
// Your project ID (e.g., "my-app")
String projectId = "<project-id>";
// Grant CAN_USE to a user (PATCH is additive and cannot downgrade)
w.permissions().update(new UpdateObjectPermissions()
.setRequestObjectType("database-projects")
.setRequestObjectId(projectId)
.setAccessControlList(List.of(
new AccessControlRequest()
.setUserName("user@example.com")
.setPermissionLevel(PermissionLevel.CAN_USE)
))
);
// Get current permissions
ObjectPermissions permissions = w.permissions().get(
new GetPermissionRequest()
.setRequestObjectType("database-projects")
.setRequestObjectId(projectId)
);
Go Software Development Kit (SDK)
import (
"github.com/databricks/databricks-sdk-go"
"github.com/databricks/databricks-sdk-go/service/iam"
)
w, _ := databricks.NewWorkspaceClient()
// Your project ID (e.g., "my-app")
projectID := "<project-id>"
// Grant CAN_USE to a user (Update is additive and cannot downgrade)
_, err := w.Permissions.Update(ctx, iam.UpdateObjectPermissions{
RequestObjectType: "database-projects",
RequestObjectId: projectID,
AccessControlList: []iam.AccessControlRequest{
{
UserName: "user@example.com",
PermissionLevel: iam.PermissionLevelCanUse,
},
},
})
// Get current permissions
permissions, err := w.Permissions.Get(ctx, iam.GetPermissionRequest{
RequestObjectType: "database-projects",
RequestObjectId: projectID,
})