Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
O dimensionamento automático do Lakebase está disponível nas seguintes regiões: eastus, , eastus2, centralus, southcentralus, , westus, westus2, canadacentral, , brazilsouth, , northeurope, uksouth, , westeurope, , australiaeast, centralindiasoutheastasia.
O Dimensionamento Automático do Lakebase é a versão mais recente do Lakebase, com computação de dimensionamento automático, escala para zero, ramificação e restauração instantânea. Se você for um usuário provisionado do Lakebase, consulte Lakebase Provisioned.
As permissões de projeto do Lakebase podem ser gerenciadas programaticamente usando a API de Permissões do Azure Databricks padrão, a CLI do Azure Databricks, os SDKs do Azure Databricks e o Terraform.
Para obter uma visão geral dos tipos de permissão, permissões padrão e como gerenciar permissões na interface do usuário do Lakebase, consulte Gerenciar permissões de projeto.
Níveis de permissão
Os níveis de permissão que podem ser concedidos para projetos do Lakebase são CAN_USE e CAN_MANAGE.
CAN_CREATE é um nível herdado que flui automaticamente do workspace para todos os usuários e não pode ser explicitamente concedido ou revogado em um projeto. As tentativas de concessão CAN_CREATE por meio da API retornam HTTP 400.
As IDs do projeto são UUIDs (por exemplo, a446ad92-e936-454b-a31c-a0742e53dd5c). Recupere o seu com databricks postgres list-projects e examine o campo uid.
API REST
As permissões de projeto utilizam a API de Permissões padrão do Azure Databricks em /api/2.0/permissions/database-projects/{project_id}.
Obter 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 de serviço, substitua user_name por group_name ou service_principal_name.
Observação
PATCH é incremental e não pode reduzir uma permissão mais elevada existente. Por exemplo, aplicar o patch CAN_USE em um usuário que já possui CAN_MANAGE não tem efeito. Para fazer downgrade ou remover uma permissão, use PUT.
Substitua todas as permissões explícitas (PUT)
Aviso
PUT substitui toda a Lista de Controle de Acesso (ACL) explícita. Qualquer usuário, grupo ou entidade de serviço não incluído no corpo da solicitação perde a permissão explicitamente concedida. Permissões herdadas (como administradores de workspace) 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 obter a referência completa da API de Permissões, consulte a API de Permissões.
CLI
Use os databricks permissions comandos (que encapsulam a API de Permissões) para gerenciar permissões de projeto da linha de comando.
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"
}
]
}'
Obter permissões atuais
databricks permissions get database-projects ${PROJECT_ID}
Observação
Use databricks permissions (não databricks postgres) para o gerenciamento de ACL do projeto. O databricks postgres subcomando gerencia recursos de projeto (branches, computação etc.), não permissões.
SDK
Use a WorkspaceClient.permissions interface no SDK do Python, Java ou Go para gerenciar permissões de projeto.
SDK do Python
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,
)
],
)
Java SDK
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)
);
SDK do 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 gerenciar permissões de projeto como infraestrutura-como-código. Para obter um fluxo de trabalho completo do Terraform, incluindo criação de projeto, exemplos de grupo e comportamento declarativo, consulte Gerenciar 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 obter a referência de recurso completa, consulte "databricks_permissions" no Registro Terraform.