Important
Lakebase 自動スケールは、 eastus、 eastus2、 centralus、 southcentralus、 westus、 westus2、 canadacentral、 brazilsouth、 northeurope、 uksouth、 westeurope、 australiaeast、 centralindia、 southeastasiaの各リージョンで使用できます。
Lakebase 自動スケールは、自動スケール コンピューティング、ゼロへのスケール、分岐、インスタント リストアを備えた最新バージョンの Lakebase です。 Lakebase プロビジョニング済みユーザーの場合は、「 Lakebase Provisioned」を参照してください。
Lakebase プロジェクトのアクセス許可は、標準の Azure Databricks Permissions API、Azure Databricks CLI、Azure Databricks SDK、Terraform を使用してプログラムで管理できます。
アクセス許可の種類、既定のアクセス許可、および Lakebase UI でアクセス許可を管理する方法の概要については、「 プロジェクトのアクセス許可の管理」を参照してください。
アクセス許可レベル
Lakebase プロジェクトの許可可能なアクセス許可レベルは、CAN_USE と CAN_MANAGE です。
CAN_CREATE は継承されたレベルであり、ワークスペースからすべてのユーザーに自動的に流れ、プロジェクトで明示的に許可または取り消すことはできません。
CAN_CREATE のアクセス権付与を試みると、API から 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 Permissions 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)
Warnung
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
コマンド ラインからプロジェクトのアクセス許可を管理するには、 databricks permissions コマンド (Permissions API をラップ) を使用します。
アクセス許可の付与または更新
# 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
Python、Java、または Go SDK の WorkspaceClient.permissions インターフェイスを使用して、プロジェクトのアクセス許可を管理します。
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,
})
Terraform
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を参照してください。