日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

云开发的数据库权限机制解读丨云开发101

發(fā)布時(shí)間:2023/12/10 数据库 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 云开发的数据库权限机制解读丨云开发101 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在使用云開發(fā)進(jìn)行開發(fā)時(shí),數(shù)據(jù)庫權(quán)限是一個(gè)讓不少人困擾的部分,四種數(shù)據(jù)庫權(quán)限,到底是什么意思?其各自的權(quán)限、應(yīng)用場景都是什么?大多數(shù)人對于這個(gè)機(jī)制,還是模糊的。為了幫助大家進(jìn)行更好的開發(fā),在涉及到具體的代碼之前,我們先來了解一下云開發(fā)的數(shù)據(jù)庫權(quán)限機(jī)制。

一、為什么會有權(quán)限系統(tǒng)?

云開發(fā)和其他常見的開發(fā)模式有一處很大的不同就是,其數(shù)據(jù)庫是可以在小程序端直接進(jìn)行查詢,而無需通過服務(wù)端提供的特定 API 接口來完成數(shù)據(jù)查詢。這樣就會出現(xiàn)一個(gè)問題,這個(gè)數(shù)據(jù)到底誰能查?誰不能查?能查到數(shù)據(jù)的人,能修改數(shù)據(jù)么?

在傳統(tǒng)的應(yīng)用開發(fā)模式中,權(quán)限的控制由服務(wù)端的后端接口完成,但是,在云開發(fā)的模式中,已經(jīng)不存在傳統(tǒng)的后端,因此,我們需要將權(quán)限控制進(jìn)行向前移,但前端的代碼因?yàn)闊o法保證安全(前端的數(shù)據(jù)可能被篡改,不可信),因此,我們需要將權(quán)限控制放在一個(gè)更加安全的地方,在經(jīng)過多方權(quán)衡后,最終,云開發(fā)數(shù)據(jù)庫就變成了云開發(fā)控制臺中的一個(gè)選項(xiàng)。

二、云開發(fā)權(quán)限系統(tǒng)中的環(huán)境與角色

在云開發(fā)的權(quán)限中,我們會看到一些詞,比如創(chuàng)建者所有人管理端,這些詞應(yīng)該如何理解呢?

其實(shí)這里在命名上是有一些問題的,管理端和創(chuàng)建者、所有人并不是一個(gè)好的對比,如果將管理端更名為管理員,會更容易理解。

從權(quán)限的層面上來看,從管理端到創(chuàng)建者再到所有人,權(quán)限是依次收緊的。

管理端,或者叫管理員,其實(shí)便是指云開發(fā)中的云函數(shù)環(huán)境的執(zhí)行權(quán)限。因?yàn)槭窃谠坪瘮?shù)中執(zhí)行,安全系數(shù)較高,因而獲得了最高的權(quán)限,也就是所謂的管理端權(quán)限。這個(gè)權(quán)限包括了對于所有的數(shù)據(jù)進(jìn)行增、刪、改、查的能力。

創(chuàng)建者,則指的是創(chuàng)建某條數(shù)據(jù)的用戶,一般來說,是指在小程序端創(chuàng)建數(shù)據(jù)的用戶。數(shù)據(jù)和用戶之間的綁定是基于數(shù)據(jù)中的 _openid 來實(shí)現(xiàn)的,程序在執(zhí)行中,當(dāng)前用戶的 openid 與數(shù)據(jù)的_openid一致時(shí),就認(rèn)為這個(gè)用戶是數(shù)據(jù)的創(chuàng)建者。

所有人,指的是除了管理員以外的用戶,這個(gè)用戶一般而言,也是指小程序端的用戶。數(shù)據(jù)和用戶之間并不具備直接的關(guān)聯(lián)關(guān)系。用戶僅能通過數(shù)據(jù)庫權(quán)限配置后的開放讀取到用戶。

三、關(guān)于四個(gè)不同的權(quán)限

云開發(fā)的數(shù)據(jù)庫權(quán)限共四種,分別是:
1. 僅創(chuàng)建者可寫,所有人可讀
2. 僅創(chuàng)建者可讀寫
3. 僅管理端可寫,其他人可讀
4. 僅管理端可讀寫

這四種權(quán)限各自對應(yīng)著不同的場景,接下來,我們借一些例子,來看一看四種權(quán)限的不同應(yīng)用場景。

僅創(chuàng)建者可寫,所有人可讀

這種權(quán)限是我們使用最多的權(quán)限,特別是一些涉及到UGC的場景,我們一定會需要這個(gè)權(quán)限,因?yàn)槲覀兊男枨笫钱a(chǎn)生的內(nèi)容所有人均可讀,寫的層面則允許數(shù)據(jù)的創(chuàng)建者可寫。

舉個(gè)例子,如果你做了一個(gè)類似朋友圈的應(yīng)用,那么你一定希望你的用戶發(fā)的朋友圈可以被其他用戶看到,但不能被其他用戶修改,不然就亂套了。

僅創(chuàng)建者可讀寫

這種權(quán)限一般應(yīng)用在一些用戶的個(gè)人隱私信息的場景中。這些信息希望用戶自己可以讀取,但其他用戶無法讀取,此時(shí),我們便需要僅創(chuàng)建者可讀寫。

舉個(gè)例子,如果你做了個(gè)人相冊的功能,那么你一定希望這個(gè)相冊是只有你自己能看,而不是被所有人可以看到,因此,你需要選擇僅創(chuàng)建者可讀寫,而不是僅創(chuàng)建者可寫,所有人可讀。

僅管理端可寫,其他人可讀

如果描述這個(gè)權(quán)限的特性,那么就是管理員可以修改,其他人只能看。最適合的場景莫過于各種需要由開發(fā)者、平臺方管控的東西,比如新聞應(yīng)用的輪播圖列表、商城首頁的活動信息等等。這些數(shù)據(jù)的關(guān)鍵在于所有人都可以看到,同時(shí),所有人也只能看到,不能修改,只能有管理員修改。

舉個(gè)例子,如果你做了一個(gè)電商小程序,那么在你的小程序中,你一定希望首頁的推廣 Banner 由你自己控制,而不是由用戶自行控制,基于這樣的考慮,你就需要僅管理端可寫,其他人可讀的權(quán)限。

僅管理端可讀寫

僅管理端可讀寫,你可以理解為只有云函數(shù)中有資格獲取這個(gè)數(shù)據(jù),其他的環(huán)境均不允許。這個(gè)權(quán)限在某些特定的場景下非常有用,舉個(gè)例子,你的小程序的一些運(yùn)行日志,你希望在云端可以查看,同時(shí),這個(gè)日志不對普通用戶展現(xiàn),這個(gè)時(shí)候就可以設(shè)置為僅管理端可讀寫。

舉個(gè)例子,如果你做了一個(gè)電商小程序,那么內(nèi)部的統(tǒng)計(jì)數(shù)據(jù)就需要設(shè)置為僅管理端可讀寫,這樣可以確保你的運(yùn)營數(shù)據(jù)不會被普通用戶所讀取,盡可能避免信息的泄露。

四、常見問題

為什么沒有所有人可讀寫的權(quán)限?

所有人可讀寫的數(shù)據(jù)庫應(yīng)用場景并不多見,而且大多數(shù)時(shí)候、可以通過管理端完成繞過。不過,如果你真的有了這樣的場景,不妨思考一下,你的需求到底是什么?是不是因?yàn)槟愕臄?shù)據(jù)庫結(jié)構(gòu)的不合理導(dǎo)致的需要所有人可讀寫?

所有人可讀寫數(shù)據(jù)會造成非常多的問題,比如數(shù)據(jù)原子化、數(shù)據(jù)鎖等問題,因此,在你實(shí)現(xiàn)數(shù)據(jù)所有人可讀寫時(shí),一定要考慮場景。

能不能實(shí)現(xiàn)更加細(xì)粒度的權(quán)限控制呢?

當(dāng)然是可以的,實(shí)際上,云開發(fā)的數(shù)據(jù)庫中每一條由小程序段完成添加的數(shù)據(jù)都有一個(gè)字段 _openid,我們在進(jìn)行數(shù)據(jù)庫查詢時(shí),系統(tǒng)會自動替我們完成這個(gè)字段的對比,如果對比不上,再去查詢對應(yīng)集合的權(quán)限控制,看是否給予了非創(chuàng)建者可讀寫的權(quán)限。

你自己在實(shí)現(xiàn)時(shí),可以在數(shù)據(jù)創(chuàng)建時(shí),根據(jù)業(yè)務(wù)需求,在數(shù)據(jù)中加入對應(yīng)的字段,然后數(shù)據(jù)查詢時(shí),基于字段中的條件進(jìn)行對比。

如果你對于云開發(fā)有任何問題,都?xì)g迎你在文章留言出留下你的疑問,我們將一一解答。

如果你想要了解更多關(guān)于云開發(fā)CloudBase相關(guān)的技術(shù)故事/技術(shù)實(shí)戰(zhàn)經(jīng)驗(yàn),請掃碼關(guān)注【騰訊云云開發(fā)】公眾號~

轉(zhuǎn)載于:https://www.cnblogs.com/CloudBase/p/11533994.html

總結(jié)

以上是生活随笔為你收集整理的云开发的数据库权限机制解读丨云开发101的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。