1

enter image description here如何使用PowerShell在Azure中DataLake商店設置權限爲Azure的Active Directory應用程序命令

嗨,

我想設置AAD(Azure中的Active Directory)應用程序的權限(讀/寫/執行&其他設置)在ADLS(Azure DataLakeStore)中使用powershell命令。

我嘗試使用以下powershell命令:

的Set-AzureRmDataLakeStoreItemAclEntry -AccountName 「ADL的」 -Path/ -AceType用戶-Id(GET-AzureRmADApplication -ApplicationId 490eee0-2ee1-51ee-88er-0f53aerer7b) .ApplicationId -Permissions所有

但這個命令設置/顯示的applicationID下ADLS「訪問」的屬性,只有讀/寫/執行訪問。但是,此設置不正確,因爲我在ADLS中執行了服務驗證的手動步驟。

enter image description here

是否有任何其他方式來設置AAD申請的權限ADLS?

回答

2

參數Set-AzureRmDataLakeStoreItemAclEntry命令User應該是AzureActive Directory用戶,組的對象ID,或服務負責人要修改ACE。

您可以參考下面的命令來指派權限:

Set-AzureRmDataLakeStoreItemAclEntry -AccountName "accountName" -Path/-AceType User -Id 
(Get-AzureRmADServicePrincipal -ServicePrincipalName "{applicationId}").Id -Permissions All 

有關此命令的更多細節,你可以參考以下鏈接:

Set-AzureRmDataLakeStoreItemAclEntry

+0

謝謝費雪。這個命令解決了我的問題。 – Amruta

+0

嗨菲雪,上面的命令設置了對根級ADLS的權限。對於子文件夾,不顯示AAD應用程序權限。如何使用PowerShell爲root及其子文件夾設置權限? – Amruta

+0

@Arruta要授予可以由子代繼承的權限,我們需要授予**默認ACL **而不是**訪問ACL **。要授予**默認ACL **,請在命令中添加'Default'參數。有關Azure Data Lake中權限的更多詳細信息,請參閱文檔[here](https://docs.microsoft.com/en-us/azure/data-lake-store/data-lake-store-access-control) 。 –

1

需要作爲Id參數來設置的ObjectId(未應用程序ID),以Set-AzureRmDataLakeStoreItemAclEntry

Set-AzureRmDataLakeStoreItemAclEntry -AccountName "adls" -Path/-AceType User -Id (Get-AzureRmADApplication -ApplicationId 490eee0-2ee1-51ee-88er-0f53aerer7b).Id -Permissions All 
+0

(GET-AzureRmADApplication -ApplicationId 490eee0- 2ee1-51ee-88er-0f53aerer7b).ObjectId ..這將返回一個空值。如果我嘗試以上答案(Get-AzureRmADApplication -ApplicationId 490eee0-2ee1-51ee-88er-0f53aerer7b).Id解決了這個問題。好的,謝謝你的回覆.. – Amruta

+0

Doh ..的確是屬性名稱不是ObjectId,但是Id。感謝您的確認。我已經改變了反映。請標記爲將來參考的答案。 –

相關問題