Terraform Databricks Provider授权错误:创建Catalog时提示无权限
解决Terraform同次Apply创建Databricks Catalog的授权错误
问题根源
同一次apply中,刚创建的Databricks Workspace还未完成Azure AD权限同步,使用azure-cli认证的身份默认没有Unity Catalog(UC)的管理员权限;直接复用默认Provider的身份无法获取足够权限创建Catalog。
解决方案:使用Workspace管理员令牌专用Provider
通过创建Workspace时生成的系统管理员令牌,配置专用的Databricks Provider来执行UC资源操作,该令牌拥有Workspace最高权限,可即时生效,无需等待AD同步。
步骤1:创建Premium/Enterprise级Databricks Workspace
UC仅支持Premium或Enterprise SKU,同时启用资源提供者以获取管理员令牌:
resource "azurerm_databricks_workspace" "main" { name = "your-dbx-workspace" resource_group_name = azurerm_resource_group.main.name location = azurerm_resource_group.main.location sku = "premium" # 必须为Premium/Enterprise级SKU enable_workspace_resource_provider = true # 启用后才能获取primary_access_token }
步骤2:配置专用UC管理员Provider
基于刚创建的Workspace的管理员令牌,定义一个带别名的Provider:
provider "databricks" { alias = "uc_admin" host = azurerm_databricks_workspace.main.workspace_url token = azurerm_databricks_workspace.main.primary_access_token }
步骤3:使用专用Provider创建Catalog
创建Catalog时指定上述别名的Provider,确保用管理员权限执行:
resource "databricks_catalog" "main" { provider = databricks.uc_admin name = "your-catalog-name" comment = "Catalog created via Terraform with workspace admin token" }
额外注意事项
- 若使用Service Principal创建Workspace,即使
azure-cli登录该SP,也可能因权限同步延迟导致失败,优先使用Workspace内置管理员令牌 - 确认Workspace已启用Unity Catalog(Premium/Enterprise SKU默认支持,无需额外操作)
内容的提问来源于stack exchange,提问作者dule
相关产品推荐
相关产品推荐

