# 权限控制

初期我们对操作数据库开放以下几种权限配置,每个集合可以拥有一种权限配置,权限配置的规则是作用在集合的每个记录上的。出于易用性和安全性的考虑,在客户端创建的每个数据库记录都会带有该记录创建者(即小程序或网站用户)的信息,以 _openid 字段保存用户的 openid 在每个相应用户创建的记录中。其中,小程序端_openid 为 cloudBase 生成的用户唯一 ID(与小程序用户openid不相等)。因此,权限控制也相应围绕着一个用户是否应该拥有权限操作其他用户创建的数据展开。

以下按照权限级别从宽到紧排列如下:

  • 仅创建者可写,所有人可读:数据只有创建者可写、所有人可读;例如文章。
  • 仅创建者可读写:数据只有创建者可读写,其他用户不可读写;例如使用私密相册。
  • 仅管理端可写,所有人可读:该数据只有管理端可写,所有人可读;例如商品信息。
  • 仅管理端可读写:该数据只有管理端可读写;例如后台用的不暴露的数据。

管理端始终拥有读写所有数据的权限,客户端始终不能写他人创建的数据,客户端的记录的读写权限其实分为了 “所有人可读,只有创建者可写”、“仅创建者可读写”、“所有人可读,仅管理端可写”、“所有人不可读,仅管理端可读写”。

对一个用户来说,不同模式在客户端和管理端的权限表现如下:

客户端 客户端 客户端 客户端 管理端
权限 读自己创建的数据 写自己创建的数据 读他人创建的数据 写他人创建的数据 读写任意数据
仅创建者可写,所有人可读 ×
仅创建者可读写 × ×
仅管理端可写,所有人可读 × ×
仅管理端可读写:该数据只有管理端可读写 × × × ×