我正在尝试使用此示例从 .Net 客户端应用程序访问数据湖
我已经在 AAD 租户中注册了客户端应用程序,并从那里使用了客户端 ID 和客户端密码(因为我认为这是服务到服务身份验证。)
数据湖在不同的订阅中,但属于同一个租户/AAD
该应用程序在数据湖中的特定文件夹(根文件夹下的两个层次结构)的“所有者”和“分配的权限”下具有读/写/执行权限。直到根目录的父文件夹具有此处提到的执行权限。应用程序的“访问控制 (IAM)”中的总体访问级别为“读者”
我收到以下错误,我认为这意味着我能够进行身份验证但没有足够的权限来读取/写入:
Microsoft.Azure.DataLake.Store.AdlsException: Error opening a Read Stream for file something/something/something.txt
Operation: GETFILESTATUS failed with HttpStatus:Forbidden RemoteException: AccessControlException GETFILESTATUS failed with
error 0x83090aa2 (Forbidden. ACL verification failed. Either the resource does not exist or the user is not authorized to
perform the requested operation.).
[***][***] JavaClassName: org.apache.hadoop.security.AccessControlException.
Last encountered exception thrown after 1 tries. [Forbidden: AccessControlException]
[ServerRequestId:***]
我不明白缺少哪些其他权限?我必须在这里使用服务主体吗?如果是这样,我如何检查我的应用程序服务主体在此数据湖上的访问权限。谢谢。