Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Lakebase Autoscaling is de nieuwste versie van Lakebase, met automatisch schalen van rekenkracht, schaal-tot-nul, branching-functionaliteit en direct herstellen. Zie Beschikbaarheid van regio's voor ondersteunde regio's. Als u een door Lakebase ingericht gebruiker bent, raadpleegt u Lakebase Ingericht.
Machtigingen voor Lakebase-projecten kunnen programmatisch worden beheerd met behulp van de standaard api voor Azure Databricks machtigingen, de Azure Databricks CLI, Azure Databricks SDK's en Terraform.
Zie Projectmachtigingen beheren voor een overzicht van machtigingstypen, standaardmachtigingen en het beheren van machtigingen in de Gebruikersinterface van Lakebase.
Machtigingsniveaus
De toe te kennen machtigingsniveaus voor Lakebase-projecten zijn CAN_USE en CAN_MANAGE.
CAN_CREATE is een overgenomen niveau dat automatisch van de werkruimte naar alle gebruikers stroomt en niet expliciet kan worden verleend of ingetrokken voor een project. Pogingen om CAN_CREATE te verlenen via de API geven een HTTP 400 foutmelding.
De Machtigingen-API identificeert projecten op project-id (bijvoorbeeld my-app). U vindt deze waarde in het project_id veld van de projectstatus die wordt geretourneerd door de API's project ophalen en Lijstprojecten.
Opmerking
Het project_id veld is beschikbaar in REST API-antwoorden, maar is nog niet beschikbaar in SDK- of CLI-antwoordobjecten. Als u een SDK gebruikt, kunt u de project-id uit het name veld extraheren door het projects/ voorvoegsel te verwijderen (bijvoorbeeld projects/my-app wordt my-app).
REST API
Project machtigingen gebruiken de standaard Azure Databricks Permissions API op /api/2.0/permissions/database-projects/{project_id}.
Huidige machtigingen ophalen
curl -X GET "https://${DATABRICKS_HOST}/api/2.0/permissions/database-projects/${PROJECT_ID}" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq
Machtigingen verlenen of bijwerken (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"
}
]
}'
Verleen machtigingen aan een groep of service-principal door user_name te vervangen door group_name of service_principal_name.
Opmerking
PATCH is additief en kan een bestaande hogere machtiging niet downgraden. Het toepassen van CAN_USE op een gebruiker die al CAN_MANAGE bezit, heeft bijvoorbeeld geen effect. Als u een machtiging wilt downgraden of verwijderen, gebruikt u IN plaats daarvan PUT.
Alle expliciete machtigingen (PUT) vervangen
Waarschuwing
PUT vervangt de volledige expliciete ACL. Elke gebruiker, groep of service-principal die niet in de aanvraagbody is opgenomen, verliest de expliciet verleende machtiging. Overgenomen machtigingen (zoals werkruimtebeheerders) worden niet beïnvloed.
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"
}
]
}'
Zie Permissions-API voor de volledige naslaginformatie over de Permissions-API.
CLI
Gebruik de databricks permissions opdrachten (die de Machtigingen-API verpakken) om projectmachtigingen vanaf de opdrachtregel te beheren.
Machtigingen verlenen of bijwerken
# 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"
}
]
}'
Huidige machtigingen ophalen
databricks permissions get database-projects ${PROJECT_ID}
Opmerking
Gebruik databricks permissions (niet databricks postgres) voor project-ACL-beheer. De databricks postgres subopdracht beheert projectresources (vertakkingen, berekeningen, enzovoort), geen machtigingen.
SDK
Gebruik de interface WorkspaceClient.permissions in de Python, Java of Go SDK om projectmachtigingen te beheren.
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 Softwareontwikkelingskit
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,
})