我有Azure Data Lake Gen1,并且我正在使用Powershell脚本来授予对文件夹的访问权限,并且脚本可以正常工作。随着需求的变化,我在Lake的根文件夹下动态创建了几个子文件夹。
是否可以将权限自动传播到动态创建的子文件夹?我尝试使用下面的powershell脚本,但是除非子文件夹已经存在,否则根目录的“读取,执行”权限不会传播到子文件夹。 在门户中,我确实看到了将父文件夹权限应用于子文件夹的选项。在Data Lake中的“访问->高级->高级访问->将文件夹权限应用于子文件夹”选项。
PowerShell代码:$ df是数据工厂变量
Set-AzureRmDataLakeStoreItemAclEntry -Account "xxxx.azuredatalakestore.net" -Id $df.Identity.PrincipalId -Path "/" -Permissions ReadExecute -AceType User -Recurse -Concurrency 128
编辑:有趣的是,如果根文件夹是使用“写”权限创建的,而子文件夹是动态创建的,则它们将从父文件夹继承权限。读取无法正常工作。
答案 0 :(得分:2)
Satya,
Azure Data Lake Gen1中新文件和目录的默认权限按以下方式工作。 在现有目录下创建新文件或目录时,父目录上的默认ACL确定:
1)子目录的默认ACL并访问ACL。 2)子文件的访问ACL(文件没有默认ACL)。
因此,您需要间接在ADLS访问列表中为用户和用户组创建默认权限集。
然后创建文件夹和子文件夹时,默认权限集将应用于子目录。
为此,您可以执行以下操作:
在访问控制列表中添加默认权限列表,所有子文件夹将遵循相同的访问层次结构。