使用PowerShell为不同用户授予对单独Data Lake Gen 2文件夹的访问权限

使用PowerShell为不同用户授予对单独Data Lake Gen 2文件夹的访问权限,powershell,automation,azure-powershell,azure-data-lake,azure-data-lake-gen2,Powershell,Automation,Azure Powershell,Azure Data Lake,Azure Data Lake Gen2,虽然我可以使用授予Azure Data Lake Gen 2中不同用户的访问权限,但我希望能够授予访问权限,以便每个用户都可以使用每个Data Lake Gen 2容器访问自己的单独文件夹,例如容器1中的文件夹,用户A可以访问子文件夹A,用户B可以访问子文件夹B。这可以使用Storage explorer UI实现,但我无法使用PowerShell命令实现 您可以使用下面的脚本向用户授予权限 在我的示例中,我有一个容器test,有两个文件夹,folder1和folder2。我将rwx权限授予fo

虽然我可以使用授予Azure Data Lake Gen 2中不同用户的访问权限,但我希望能够授予访问权限,以便每个用户都可以使用每个Data Lake Gen 2容器访问自己的单独文件夹,例如容器1中的文件夹,用户A可以访问子文件夹A,用户B可以访问子文件夹B。这可以使用Storage explorer UI实现,但我无法使用PowerShell命令实现

您可以使用下面的脚本向用户授予权限

在我的示例中,我有一个容器
test
,有两个文件夹,
folder1
folder2
。我将
rwx
权限授予
folder1
中的用户

$storageAccount = Get-AzStorageAccount -ResourceGroupName "xxxxx" -AccountName "joygen"
$ctx = $storageAccount.Context

$filesystemName = "test"
$dirname = "folder1/"
$objectid = "<object-id of the user in Azure AD>"
$acl = New-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $objectid -Permission rwx
Update-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -Acl $acl

对于其他用户,只需使用脚本授予
folder2
权限即可

更新:

是的,你可以。只需使用下面的脚本,
$objectid1
$objectid2
是两个用户,
$objectid3
是Azure广告安全组。在命令中,请注意
-AccessControlType
-InputObject
的用法

$storageAccount = Get-AzStorageAccount -ResourceGroupName "xxxx" -AccountName "joygen"
$ctx = $storageAccount.Context

$filesystemName = "test"
$dirname = "folder1/"
$objectid1 = "<object-id of the user1 in Azure AD>"
$objectid2 = "<object-id of the user2 in Azure AD>"
$objectid3 = "<object-id of the group in Azure AD>"
$acl = New-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $objectid1 -Permission rwx
$acl = New-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $objectid2 -Permission rwx -InputObject $acl
$acl = New-AzDataLakeGen2ItemAclObject -AccessControlType group -EntityId $objectid3 -Permission rwx -InputObject $acl
Update-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -Acl $acl
$storageAccount=Get-AzStorageAccount-ResourceGroupName“xxxx”-AccountName“joygen”
$ctx=$storageAccount.Context
$filesystemName=“测试”
$dirname=“folder1/”
$objectid1=“”
$objectid2=“”
$objectid3=“”
$acl=New-AzDataLakeGen2ItemAclObject-AccessControlType用户-EntityId$ObjectD1-权限rwx
$acl=New-AzDataLakeGen2ItemAclObject-AccessControlType用户-EntityId$ObjectD2-权限rwx-InputObject$acl
$acl=New-AzDataLakeGen2ItemAclObject-AccessControlType组-EntityId$ObjectD3-Permission rwx-InputObject$acl
Update-AzDataLakeGen2Item-Context$ctx-FileSystem$filesystemName-Path$dirname-Acl$Acl

如果@Joy Wang显示的过程似乎只允许每个单独的文件夹中有一个用户/组,那么是否可以向文件夹中添加两个或更多用户/组,而不是每个文件夹中只添加一个用户/组?
$storageAccount = Get-AzStorageAccount -ResourceGroupName "xxxx" -AccountName "joygen"
$ctx = $storageAccount.Context

$filesystemName = "test"
$dirname = "folder1/"
$objectid1 = "<object-id of the user1 in Azure AD>"
$objectid2 = "<object-id of the user2 in Azure AD>"
$objectid3 = "<object-id of the group in Azure AD>"
$acl = New-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $objectid1 -Permission rwx
$acl = New-AzDataLakeGen2ItemAclObject -AccessControlType user -EntityId $objectid2 -Permission rwx -InputObject $acl
$acl = New-AzDataLakeGen2ItemAclObject -AccessControlType group -EntityId $objectid3 -Permission rwx -InputObject $acl
Update-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -Acl $acl