使用Powershell的Azure Data Lake子文件夹权限

时间:2019-02-16 20:37:14

标签: azure powershell azure-data-lake

我有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

编辑:有趣的是,如果根文件夹是使用“写”权限创建的,而子文件夹是动态创建的,则它们将从父文件夹继承权限。读取无法正常工作。

1 个答案:

答案 0 :(得分:2)

Satya,

Azure Data Lake Gen1中新文件和目录的默认权限按以下方式工作。 在现有目录下创建新文件或目录时,父目录上的默认ACL确定:

1)子目录的默认ACL并访问ACL。 2)子文件的访问ACL(文件没有默认ACL)。

因此,您需要间接在ADLS访问列表中为用户和用户组创建默认权限集。

然后创建文件夹和子文件夹时,默认权限集将应用于子目录。

为此,您可以执行以下操作:

enter image description here

在访问控制列表中添加默认权限列表,所有子文件夹将遵循相同的访问层次结构。

有关其他示例,请遵循-https://www.sqlchick.com/entries/2018/3/17/assigning-data-permissions-for-azure-data-lake-store-part-3