Вы можете использовать приведенный ниже скрипт, чтобы дать разрешение пользователю.
В моем примере у меня есть контейнер 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
После предоставления разрешения мы можем проверить:
$dir = Get-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname
$dir.ACL
Для другого пользователя просто используйте сценарий, чтобы дать разрешение на folder2
.
Обновление:
Да, вы можете. Просто используйте приведенный ниже скрипт, $objectid1
и $objectid2
- два пользователя, $objectid3
- группа безопасности Azure AD. В команде обратите внимание на использование -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