USER_ISOLATION模式集群访问DBFS/ADLS权限问题及解决方案咨询
问题:共享模式(USER_ISOLATION)集群读写DBFS/ADLS权限不足问题
问题背景
- 交互式集群配置为
USER_ISOLATION(共享模式),需要同时读写Unity Catalog、DBFS和ADLS中的数据 - 使用Spark读取dbfs或abfss路径时,触发如下权限错误:
SparkConnectGrpcException: (org.apache.spark.SparkSecurityException) [INSUFFICIENT_PERMISSIONS] Insufficient privileges: User does not have permission SELECT on any file.
已完成的权限配置
已按照官方指引为目标用户授予ANY FILE的SELECT权限,对应的Terraform配置如下:
resource "databricks_sql_permissions" "any_file" { any_file = true catalog = true privilege_assignments { principal = "..." privileges = ["SELECT"] } }
核心疑问
根据Databricks官方文档,共享模式存在以下限制:
无法使用R、RDD API,或直接从云存储读取数据的客户端(如DBUtils)。
想确认该限制是否是触发INSUFFICIENT_PERMISSIONS错误的根本原因?
当前需求与求助
目前处于向Unity Catalog迁移的过渡阶段,仍需同时访问两类存储,且不能将集群改为SINGLE_USER模式(需支持多用户/笔记本共享),求可行的解决办法或替代方案。
集群配置详情
{ "num_workers": 1, "cluster_name": "...", "spark_version": "14.0.x-scala2.12", "spark_conf": { "spark.hadoop.fs.azure.account.oauth2.client.endpoint": "...", "spark.hadoop.fs.azure.account.auth.type": "...", "spark.hadoop.fs.azure.account.oauth.provider.type": "...", "spark.hadoop.fs.azure.account.oauth2.client.id": "...", "spark.hadoop.fs.azure.account.oauth2.client.secret": "..." }, "node_type_id": "...", "driver_node_type_id": "...", "ssh_public_keys": [], "spark_env_vars": { "cluster_type": "all-purpose" }, "init_scripts": [], "enable_local_disk_encryption": false, "data_security_mode": "USER_ISOLATION", "cluster_id": "..." }
内容的提问来源于stack exchange,提问作者Jonathan Prates
相关产品推荐
相关产品推荐

