azure datalake gen2 databricks ACL权限

时间:2020-04-26 08:34:00

标签: azure databricks azure-databricks azure-data-lake-gen2

我试图了解为什么我的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没有权限的用户的所有内容文件/文件夹。

如果有人能解释我的问题会很高兴。

谢谢

1 个答案:

答案 0 :(得分:0)

启用Azure Data Lake Storage凭据传递时,这是预期的行为。

注意:为群集启用Azure Data Lake Storage凭据传递后,在该群集上运行的命令可以在Azure Data Lake Storage中读写数据,而无需用户配置服务主体凭据才能访问存储空间。凭据是根据用户启动操作自动设置的。

参考: Enable Azure Data Lake Storage credential passthrough for your workspaceSimplify Data Lake Access with Azure AD Credential Passthrough