这个可以在云开发后台设置数据库的权限的,
云开发的数据库权限共四种,分别是:
1. 仅创建者可写,所有人可读
2. 仅创建者可读写
3. 仅管理端可写,其他人可读
4. 仅管理端可读写
这四种权限各自对应着不同的场景,接下来,我们借一些例子,来看一看四种权限的不同应用场景。
仅创建者可写,所有人可读
这种权限是我们使用最多的权限,特别是一些涉及到 UGC 的场景,我们一定会需要这个权限,因为我们的需求是产生的内容所有人均可读,写的层面则允许数据的创建者可写。
举个例子,如果你做了一个类似朋友圈的应用,那么你一定希望你的用户发的朋友圈可以被其他用户看到,但不能被其他用户修改,不然就乱套了。
仅创建者可读写
这种权限一般应用在一些用户的个人隐私信息的场景中。这些信息希望用户自己可以读取,但其他用户无法读取,此时,我们便需要仅创建者可读写。
举个例子,如果你做了个人相册的功能,那么你一定希望这个相册是只有你自己能看,而不是被所有人可以看到,因此,你需要选择仅创建者可读写,而不是仅创建者可写,所有人可读。
仅管理端可写,其他人可读
如果描述这个权限的特性,那么就是管理员可以修改,其他人只能看。最适合的场景莫过于各种需要由开发者、平台方管控的东西,比如新闻应用的轮播图列表、商城首页的活动信息等等。这些数据的关键在于所有人都可以看到,同时,所有人也只能看到,不能修改,只能有管理员修改。
举个例子,如果你做了一个电商小程序,那么在你的小程序中,你一定希望首页的推广 Banner 由你自己控制,而不是由用户自行控制,基于这样的考虑,你就需要仅管理端可写,其他人可读的权限。
仅管理端可读写
仅管理端可读写,你可以理解为只有云函数中有资格获取这个数据,其他的环境均不允许。这个权限在某些特定的场景下非常有用,举个例子,你的小程序的一些运行日志,你希望在云端可以查看,同时,这个日志不对普通用户展现,这个时候就可以设置为仅管理端可读写。
举个例子,如果你做了一个电商小程序,那么内部的统计数据就需要设置为仅管理端可读写,这样可以确保你的运营数据不会被普通用户所读取,尽可能避免信息的泄露。
常见问题
为什么没有所有人可读写的权限?
所有人可读写的数据库应用场景并不多见,而且大多数时候、可以通过管理端完成绕过。不过,如果你真的有了这样的场景,不妨思考一下,你的需求到底是什么?是不是因为你的数据库结构的不合理导致的需要所有人可读写?
所有人可读写数据会造成非常多的问题,比如数据原子化、数据锁等问题,因此,在你实现数据所有人可读写时,一定要考虑场景。
能不能实现更加细粒度的权限控制呢?
当然是可以的,实际上,云开发的数据库中每一条由小程序段完成添加的数据都有一个字段 _openid,我们在进行数据库查询时,系统会自动替我们完成这个字段的对比,如果对比不上,再去查询对应集合的权限控制,看是否给予了非创建者可读写的权限。
你自己在实现时,可以在数据创建时,根据业务需求,在数据中加入对应的字段,然后数据查询时,基于字段中的条件进行对比。
具体云开发教程可以参考腾讯云开发文档 https://cloud.tencent.com/document/product/876/51931
网友回复
- threejs如何做个三维搭积木的游戏?
- three如何实现标记多个起始路过地点位置后选择旅行工具(飞机汽车高铁等),最后三维模拟行驶动画导出mp4?
- ai实时驱动的3d数字人可视频聊天的开源技术有吗
- swoole+phpfpm如何实现不同域名指向不同目录的多租户模式?
- 如何用go替换nginx实现请求phpfpm解析运行php脚本?
- 有没有浏览器离线运行进行各种文档、图片、视频格式转换的开源工具?
- 如何使用go语言搭建一个web防火墙?
- linux如何检测特定网络协议比如http协议中报文是否包含特点关键词并阻止返回给客户?
- 如果在nginx外过滤包含某些关键词的网页并阻止打开?
- 程序员怎么做副业赚钱?



 
				 
			 
			 
				 
			