중요합니다
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을 반환합니다.
Permissions API는 프로젝트 ID(예 my-app: )로 프로젝트를 식별합니다. 프로젝트 가져오기 및 목록 프로젝트 API에서 project_id 반환하는 프로젝트 상태 필드에서 이 값을 찾을 수 있습니다.
메모
이 project_id 필드는 REST API 응답에서 사용할 수 있지만 SDK 또는 CLI 응답 개체에서는 아직 사용할 수 없습니다. SDK를 사용하는 경우 name 필드에서 접두사를 제거하여 프로젝트 ID를 추출할 수 있습니다(예: projects/가 projects/my-app로 변경됨).
REST API
Project 권한은 /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_USE을 보유한 사용자에게 CAN_MANAGE 패치를 적용해도 아무런 효과가 없습니다. 권한을 다운그레이드하거나 제거하려면 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 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"
}
]
}'
현재 권한 가져오기
databricks permissions get database-projects ${PROJECT_ID}
메모
프로젝트 ACL 관리를 위해 databricks permissions을(를) 사용하고, databricks postgres은(는) 사용하지 마십시오.
databricks postgres 하위 명령은 사용 권한이 아닌 프로젝트 리소스(분기, 컴퓨팅 등)를 관리합니다.
SDK
Python, Java 또는 Go SDK에서 WorkspaceClient.permissions 인터페이스를 사용하여 프로젝트 권한을 관리합니다.
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 소프트웨어 개발 키트 (SDK)
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,
})