Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Importante
O Autoscaling Lakebase está disponível nas seguintes regiões: eastus, eastus2, centralus, southcentralus, westus, westus2, canadacentral, brazilsouth, northeurope, uksouth, westeurope, australiaeast, centralindia, southeastasia.
O Autoscaling do Lakebase é a versão mais recente do Lakebase, com computação autoescalável, escala até zero, ramificação e restauração instantânea. Se é utilizador do Lakebase Provisioned, consulte Lakebase Provisioned.
As permissões do projeto Lakebase podem ser geridas programaticamente usando a API padrão Azure Databricks Permissions, a CLI Azure Databricks, os SDKs Azure Databricks e o Terraform.
Para uma visão geral dos tipos de permissões, permissões padrão e como gerir permissões na interface do Lakebase, consulte Gerir permissões de projeto.
Níveis de permissão
Os níveis de autorização concedíveis para projetos Lakebase são CAN_USE e CAN_MANAGE.
CAN_CREATE é um nível herdado que flui automaticamente do espaço de trabalho para todos os utilizadores e não pode ser explicitamente concedido ou revogado num projeto. As tentativas de conceder CAN_CREATE através da API resultam no erro HTTP 400.
IDs de projeto são UUIDs (por exemplo, a446ad92-e936-454b-a31c-a0742e53dd5c). Recupera o teu com databricks postgres list-projects e verifica o campo uid.
API REST
As permissões de projeto utilizam a API padrão Azure Databricks Permissions em /api/2.0/permissions/database-projects/{project_id}.
Obtenha permissões atuais
curl -X GET "https://${DATABRICKS_HOST}/api/2.0/permissions/database-projects/${PROJECT_ID}" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq
Conceder ou atualizar permissões (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"
}
]
}'
Para conceder permissões a um grupo ou entidade principal de serviço, substitua user_name por group_name ou service_principal_name.
Observação
PATCH é aditivo e não pode reduzir uma permissão existente de nível superior. Por exemplo, aplicar CAN_USE a um utilizador que já tem CAN_MANAGE não tem qualquer efeito. Para fazer downgrade ou remover uma permissão, use PUT em vez disso.
Substituir todas as permissões explícitas (PUT)
Advertência
O PUT substitui toda a ACL explícita. Qualquer utilizador, grupo ou principal de serviço que não esteja incluído no corpo do pedido perde a permissão explicitamente concedida. Permissões herdadas (como administradores de espaço de trabalho) não são afetadas.
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"
}
]
}'
Para a referência completa da API de Permissões, veja API de Permissões.
CLI
Use os databricks permissions comandos (que envolvem a API de Permissões) para gerir as permissões do projeto a partir da linha de comandos.
Conceder ou atualizar permissões
# PROJECT_ID is a UUID. Retrieve it with: databricks postgres list-projects
databricks permissions update database-projects ${PROJECT_ID} \
--json '{
"access_control_list": [
{
"user_name": "user@example.com",
"permission_level": "CAN_USE"
}
]
}'
Obtenha permissões atuais
databricks permissions get database-projects ${PROJECT_ID}
Observação
Use databricks permissions (não databricks postgres) para gestão de ACL de projetos. O databricks postgres subcomando gere os recursos do projeto (ramos, computações, etc.), não as permissões.
SDK
Use a WorkspaceClient.permissions interface do SDK em Python, Java ou Go para gerir permissões de projeto.
Python SDK
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.iam import AccessControlRequest, PermissionLevel
w = WorkspaceClient()
# Retrieve your project UUID from: databricks postgres list-projects
PROJECT_ID = "<project-uuid>"
# 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,
)
],
)
SDK de Java
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.iam.*;
WorkspaceClient w = new WorkspaceClient();
// Retrieve your project UUID from: databricks postgres list-projects
String projectId = "<project-uuid>";
// Grant CAN_USE to a user (PATCH is additive and cannot downgrade)
w.permissions().update(new UpdatePermissions()
.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)
);
Kit de Desenvolvimento de Software Go
import (
"github.com/databricks/databricks-sdk-go"
"github.com/databricks/databricks-sdk-go/service/iam"
)
w, _ := databricks.NewWorkspaceClient()
// Retrieve your project UUID from: databricks postgres list-projects
projectID := "<project-uuid>"
// Grant CAN_USE to a user (Update is additive and cannot downgrade)
_, err := w.Permissions.Update(ctx, iam.UpdatePermissions{
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,
})
Terraform
Use o databricks_permissions recurso com um database_project_name atributo para gerir permissões de projeto como infraestrutura em forma de código. Para um fluxo de trabalho completo do Terraform, incluindo criação de projetos, exemplos de grupo e comportamento declarativo, consulte Gerir permissões de projeto com o Terraform.
resource "databricks_permissions" "project_perms" {
database_project_name = databricks_postgres_project.app.project_id
access_control {
user_name = "someone@example.com"
permission_level = "CAN_USE"
}
}
Para a referência completa de recursos, veja databricks_permissions no Registo Terraform.