중요합니다
Lakebase 자동 크기 조정은 다음 eastuseastus2centralussouthcentraluswestuswestus2canadacentralbrazilsouthnortheuropeuksouthwesteuropeaustraliaeastcentralindia지역에서 사용할 수 있습니다. southeastasia
Lakebase 자동 크기 조정은 자동 크기 조정 컴퓨팅, 0으로 크기 조정, 분기 및 즉시 복원이 포함된 최신 버전의 Lakebase입니다. Lakebase 프로비전된 사용자인 경우 Lakebase Provisioned를 참조하세요.
Lakebase 프로젝트 권한은 표준 Azure Databricks Permissions API, Azure Databricks CLI, Azure Databricks SDK 및 Terraform을 사용하여 프로그래밍 방식으로 관리할 수 있습니다.
사용 권한 유형, 기본 사용 권한 및 Lakebase UI에서 사용 권한을 관리하는 방법에 대한 개요는 프로젝트 권한 관리를 참조하세요.
권한 수준
Lakebase 프로젝트에 부여할 수 있는 권한 수준은 다음과 같습니다 CAN_USECAN_MANAGE.
CAN_CREATE 은 작업 영역에서 모든 사용자로 자동으로 흐르며 프로젝트에서 명시적으로 부여하거나 취소할 수 없는 상속된 수준입니다. API를 통해 CAN_CREATE 부여하려는 시도가 HTTP 400을 반환합니다.
프로젝트 ID는 UUID(예: a446ad92-e936-454b-a31c-a0742e53dd5c)입니다.
databricks postgres list-projects를 사용하여 가져오고 uid 필드를 확인하세요.
REST API
프로젝트 권한은 /api/2.0/permissions/database-projects/{project_id}에서 표준 Azure Databricks 권한 API를 사용합니다.
현재 권한 가져오기
curl -X GET "https://${DATABRICKS_HOST}/api/2.0/permissions/database-projects/${PROJECT_ID}" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq
권한 부여 또는 업데이트(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"
}
]
}'
그룹 또는 서비스 주체에 권한을 부여하려면 user_name를 group_name 또는 service_principal_name로 바꾸십시오.
메모
PATCH는 가산적이며 기존 상위 권한을 다운그레이드할 수 없습니다. 예를 들어, 이미 CAN_MANAGE을 보유한 사용자에게 CAN_USE 패치를 적용해도 아무런 효과가 없습니다. 권한을 다운그레이드하거나 제거하려면 PUT을 대신 사용합니다.
모든 명시적 권한 바꾸기(PUT)
경고
PUT은 전체 명시적 ACL을 대체합니다. 요청 본문에 포함되지 않은 사용자, 그룹 또는 서비스 주체는 명시적으로 부여된 권한을 잃게 됩니다. 상속된 권한(예: 작업 영역 관리자)은 영향을 받지 않습니다.
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"
}
]
}'
전체 권한 API 참조는 사용 권한 API를 참조하세요.
CLI
명령줄에서 프로젝트 사용 권한을 관리하려면 권한 API를 래핑한 databricks permissions 명령을 사용하십시오.
권한 부여 또는 업데이트
# 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"
}
]
}'
현재 권한 가져오기
databricks permissions get database-projects ${PROJECT_ID}
메모
프로젝트 ACL 관리를 위해 databricks permissions을(를) 사용하고, databricks postgres은(는) 사용하지 마십시오.
databricks postgres 하위 명령은 사용 권한이 아닌 프로젝트 리소스(분기, 컴퓨팅 등)를 관리합니다.
SDK
WorkspaceClient.permissions Python, Java 또는 Go SDK의 인터페이스를 사용하여 프로젝트 권한을 관리합니다.
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,
)
],
)
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)
);
Go 소프트웨어 개발 키트 (SDK)
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,
})
테라폼
databricks_permissions 리소스를 database_project_name 속성과 함께 사용하여 프로젝트 권한을 코드 형태의 인프라로 관리합니다. 프로젝트 만들기, 그룹 예제 및 선언적 동작을 포함한 전체 Terraform 워크플로는 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"
}
}
전체 리소스 참조는 Terraform 레지스트리의 databricks_permissions 참조하세요.