使用PowerShell为不同用户授予对单独Data Lake Gen 2文件夹的访问权限
虽然我可以使用授予Azure Data Lake Gen 2中不同用户的访问权限,但我希望能够授予访问权限,以便每个用户都可以使用每个Data Lake Gen 2容器访问自己的单独文件夹,例如容器1中的文件夹,用户A可以访问子文件夹A,用户B可以访问子文件夹B。这可以使用Storage explorer UI实现,但我无法使用PowerShell命令实现 您可以使用下面的脚本向用户授予权限 在我的示例中,我有一个容器使用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
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