Kommentar
Å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.
Viktigt!
Lakebase Autoscaling är den senaste versionen av Lakebase, med automatisk skalningsberäkning, skalning till noll, förgrening och omedelbar återställning. Information om regioner som stöds finns i Regiontillgänglighet. Om du är en Lakebase Provisioned-användare kan du läsa Lakebase Provisioned.
Lakebase-projektbehörigheter kan hanteras programmatiskt med hjälp av API:et för standardbehörigheter Azure Databricks, Azure Databricks CLI, Azure Databricks SDK:er och Terraform.
En översikt över behörighetstyper, standardbehörigheter och hur du hanterar behörigheter i Lakebase-användargränssnittet finns i Hantera projektbehörigheter.
Behörighetsnivåer
Behörighetsnivåer som kan beviljas för Lakebase-projekt är CAN_USE och CAN_MANAGE.
CAN_CREATE är en ärvd nivå som flödar automatiskt från arbetsytan till alla användare och inte uttryckligen kan beviljas eller återkallas i ett projekt. Försök att bevilja CAN_CREATE via API:et returnerar HTTP 400.
API:et Behörigheter identifierar projekt efter projekt-ID (till exempel my-app). Du hittar det här värdet i project_id fältet för projektstatusen som returneras av API:erna Hämta projekt och Lista projekt.
Anmärkning
Fältet project_id är tillgängligt i REST API-svar men är ännu inte tillgängligt i SDK- eller CLI-svarsobjekt. Om du använder ett SDK kan du extrahera projekt-ID:t från name fältet genom att ta bort prefixet projects/ (till exempel projects/my-app blir my-app).
REST-API
Projektbehörigheter använder standard Azure Databricks-behörighets-API:et på /api/2.0/permissions/database-projects/{project_id}.
Hämta aktuella behörigheter
curl -X GET "https://${DATABRICKS_HOST}/api/2.0/permissions/database-projects/${PROJECT_ID}" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq
Bevilja eller uppdatera behörigheter (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"
}
]
}'
Om du vill bevilja behörigheter till en grupp eller tjänstens huvudnamn ersätter du user_name med group_name eller service_principal_name.
Anmärkning
PATCH är additiv och kan inte nedgradera en befintlig högre behörighet. Till exempel har att applicera en korrigering av CAN_USE för en användare som redan innehar CAN_MANAGE ingen effekt. Om du vill nedgradera eller ta bort en behörighet använder du PUT i stället.
Ersätt alla explicita behörigheter (PUT)
Varning
PUT ersätter hela den explicita ACL:en. Alla användare, grupper eller tjänstens huvudnamn som inte ingår i begärandetexten förlorar sin uttryckligen beviljade behörighet. Ärvda behörigheter (till exempel arbetsyteadministratörer) påverkas inte.
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"
}
]
}'
Fullständig api-referens för behörigheter finns i Behörighets-API.
CLI
databricks permissions Använd kommandona (som omsluter behörighets-API:et) för att hantera projektbehörigheter från kommandoraden.
Bevilja eller uppdatera behörigheter
# 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"
}
]
}'
Hämta aktuella behörigheter
databricks permissions get database-projects ${PROJECT_ID}
Anmärkning
Använd databricks permissions (inte databricks postgres) för projekt-ACL-hantering. Underkommandot databricks postgres hanterar projektresurser (grenar, beräkningar osv.), inte behörigheter.
SDK
Använd gränssnittet WorkspaceClient.permissions i Python, Java eller Go SDK för att hantera projektbehörigheter.
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-mjukvaruutvecklingskit
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,
})