ACL 权限管理开发指南
信息
ACL 是 Access Control List 的缩写,称为访问控制列表,包含了对一个对象或一条记录可进行何种操作的权限定义。
TDS 云端使用的 ACL 机制是将每个操作授权给特定的 User 用户或者 Role 角色,只允许这些用户或角色对一个对象执行这些操作。
例如如下 ACL 定义:
{
"*":{
"read":true,
"write":false
},
"role:admin":{
"read":true,
"write":true
},
"58113fbda0bb9f0061ddc869":{
"read":true,
"write":true
}
}
- 所有人可读,但不能写(
*代表所有人)。 - 角色为 admin(包含子角色)的用户可读可写。
- ID 为
58113fbda0bb9f0061ddc869的用户可读可写。
我们使用内建数据表 _User 来维护 用户/账户系统,以及 内建数据表 _Role 来维护角色。
角色既可以包含用户,也可以包含其他角色,也就是说角色有层次关系,将权限授予一个角色代表该角色所包含的其他角色也会得到相应的权限。
云端对客户端发过来的每一个请求都要进行用户身份鉴别和 ACL 访问授权的严格检查。因此,使用 ACL 可以灵活且最大程度地保护应用数据,提升访问安全。
默认 ACL
每个 Class 的初始默认 ACL 为所有人可读可写:
{
"*":{
"read":true,
"write":true
}
}
在创建 Class 对话框可以设置 Class 的默认 ACL:

你可以设置 read 和 write 权限开放给哪些用户,其中:
- 「所有用户」、「指定用户」可以参考数据安全指南的 Class 层面的访问权限一节的说明。
- 「数据创建者(Owner)」指创建数据的用户。也就是说,新增对象(create)时附带的
X-LC-SessionHTTP 头对应的用户。
除了分别设置 read 和 write 权限开放给哪些用户外,对话框中还提供了一些常用设定的快捷方式:
- 限制写入:数据创建者可读、可写,其他用户可读、不可写。
- 限制读取:数据创建者可读、可写,其他用户不可读、不可写。
- 限制所有:数据创建者可读、不可写,其他用户不可读、不可写。
- 无限制:所有人可读、可写。
对于已经存在的 Class,你可以更新默认 ACL 和访问权限