簡體   English   中英

azure datalake gen2 databricks ACL 權限

[英]azure datalake gen2 databricks ACLs permissions

我想了解為什么我的 ACL 權限在 Databricks 中無法正常工作。

場景:我有 2 個用戶。 一個對 FileSystem 和具有完全權限的人。 其他沒有任何權限。

我嘗試使用 2 種不同的方法在數據塊中安裝 Gen2 文件系統。

  1.  configs = {"fs.azure.account.auth.type": "OAuth", "fs.azure.account.oauth.provider.type": "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider", "fs.azure.account.oauth2.client.id": clientid, "fs.azure.account.oauth2.client.secret": credential, "fs.azure.account.oauth2.client.endpoint": refresh_url} dbutils.fs.mount( source = "abfss://xyz@abc.dfs.core.windows.net/", mount_point = "/mnt/xyz", extra_configs = configs)

並使用直通 2。

configs = { 
"fs.azure.account.auth.type": "CustomAccessToken",
"fs.azure.account.custom.token.provider.class": spark.conf.get("spark.databricks.passthrough.adls.gen2.tokenProviderClassName")
}

dbutils.fs.mount(
  source = "abfss://xyz@abc.dfs.core.windows.net/",
  mount_point = "/mnt/xyz",
  extra_configs = configs)

都掛載文件系統。 但是當我使用:

dbfs.fs.ls("/mnt/xyz")

它顯示對 datalake 沒有權限的用戶的所有內容文件/文件夾。

如果有人能解釋我出了什么問題,我會很高興。

謝謝

當您啟用 Azure Data Lake Storage 憑據直通時,這是預期的行為。

注意:當為 Azure Data Lake Storage 憑證直通啟用集群時,在該集群上運行的命令可以在 Azure Data Lake Storage 中讀取和寫入數據,而無需用戶配置服務主體憑證來訪問存儲。 憑據是根據啟動操作的用戶自動設置的。

參考: 為您的工作區啟用 Azure Data Lake Storage 憑證直通,使用 Azure AD 憑證直通簡化數據湖訪問

您可能確實忘記在容器的訪問控制 (IAM) 中添加權限。

要檢查這一點,您可以 go 到 azure 門戶中的容器,然后單擊Switch to Azure AD User Account 如果您沒有權限,您將看到一條錯誤消息。

例如,您可以添加角色Storage Blob Data Contributor以具有讀取和寫入訪問權限。

注意:Datalake 需要幾分鍾時間來刷新憑據,因此您需要在添加角色后稍等片刻。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM