如何使用Power Automate流管理SharePoint列表的用户访问权限
一、用「发送HTTP请求到SharePoint」实现权限操作
1. 获取列表权限用户/组列表
要收集指定列表的所有权限分配信息,使用以下API请求:
- 请求方法:GET
- URI:
/_api/web/lists/getbytitle('{你的列表名称}')/roleassignments - 请求头:添加
Accept: application/json;odata=verbose
返回结果中,每条权限项包含PrincipalId(用户/组的唯一ID)和RoleDefinitionId(对应权限角色的ID)。如需获取用户/组的详细信息(如名称、邮箱),可针对PrincipalId发起二次请求:
- 获取用户详情:
/_api/web/getuserbyid({PrincipalId})(GET方法) - 获取组详情:
/_api/web/sitegroups/getbyid({PrincipalId})(GET方法)
2. 修改列表权限(添加/移除)
添加权限
给指定用户/组分配列表级权限:
- 请求方法:POST
- URI:
/_api/web/lists/getbytitle('{你的列表名称}')/roleassignments/addroleassignment(principalid={用户/组ID}, roledefid={权限角色ID}) - 请求头:添加
Content-Type: application/json;odata=verbose - 请求体:
{}(空JSON即可)
常见权限角色ID参考:
- 读取:
1073741826 - 编辑:
1073741827 - 完全控制:
1073741829
移除权限
移除用户/组的列表级权限:
- 请求方法:POST
- URI:
/_api/web/lists/getbytitle('{你的列表名称}')/roleassignments/removeroleassignment(principalid={用户/组ID}, roledefid={权限角色ID}) - 请求头:添加
Content-Type: application/json;odata=verbose - 请求体:
{}
二、关于列表ID与批量操作的说明
- 列表本身有唯一GUID格式的ID,可通过
/_api/web/lists/getbytitle('{你的列表名称}')(GET方法)获取Id字段。在API URI中,可使用getbyid('{列表GUID}')替代getbytitle('{列表名称}'),避免因列表名称变更导致请求失效。 - 无需遍历列表所有项目设置权限:你提到的「授予项目或文件夹访问权限」属于项目级操作,而列表级权限可直接通过上述API完成,效率更高且直接作用于整个列表。
内容的提问来源于stack exchange,提问作者Degan
相关产品推荐
相关产品推荐

