Azure Datalake Gen1权限在迭代文件夹时被拒绝

iswrvxsc  于 2023-05-18  发布在  其他
关注(0)|答案(1)|浏览(97)

我正在尝试使用Python SDK迭代Azure datalake Gen1中的所有文件夹。我正在使用一个服务主体,并为其分配了所有者角色。但是,当我尝试访问某些文件夹时,我得到一个权限拒绝错误。我不确定我是否需要任何其他角色以及,因为业主有最高的特权,我猜。
下面是我正在使用的代码

%pip install azure-mgmt-resource
%pip install azure-mgmt-datalake-store
%pip install azure-datalake-store

  import re
  import datetime;
  from azure.datalake.store import lib, core
  from azure.common.credentials import ServicePrincipalCredentials
  from pyspark.sql.types import StringType
  from pyspark.sql.functions import udf,split, explode,col,when,concat,array_contains,lit
  import datetime;

  def authenticate(clientId, secretId, tenantId):

      RESOURCE = 'https://datalake.azure.net/'

      tenant = tenantId

      client_id = clientId

      client_secret = secretId

      adlCreds = lib.auth(tenant_id=tenant,

                          client_secret=client_secret,

                          client_id=client_id,

                          resource=RESOURCE)

      adl = core.AzureDLFileSystem(adlCreds, store_name="xxx")

      return adl


  clientId = dbutils.secrets.get(scope = "datalakesecurity", key = "datalakeclientid")

  secretId = dbutils.secrets.get(scope = "datalakesecurity", key = "datalakecredential")

  tenantId = 'xxxxx'

  adl = authenticate(clientId, secretId, tenantId)

  path_to_look= '/'

  level1 = adl.ls(path_to_look)

  print(level1)
xxls0lw8

xxls0lw81#

Azure Datalake Gen1权限在迭代文件夹时被拒绝。
在Azure Data Lake Gen1中,“所有者”角色拥有对整个Data Lake帐户的完全访问权限,包括所有文件夹和文件。即使您持有所有者角色,仍有一些文件夹级别的权限可能会阻止您访问特定文件夹。您也可以给予您的服务委托人一个贡献者职位。
根据这个MS文档,除了所有者角色之外,你需要明确给予文件夹级别的读、写、执行权限。

即使您的服务原则上有所有者角色,但您没有上述权限,您将面临权限拒绝错误。

相关问题