Supabase的Row Level Security(資料列安全原則)

是時候討論資料庫安全性的時候!還記得上一篇文章中,建立一個新的表格時有把一個RLS的按鈕打開,這篇文章就是簡單的說明一下RLS是什麼,以及RLS如何設定等等範例。
Supabase的資料庫和表格
嗨歡迎閱讀我的文章!這是關於Supabase的系列文章,內容包含介紹Supabase是什麼、基本功能應用,深入了解Supabase的進階功能應用。

什麼是Row Level Security?

Row Level Security 是一種PostgreSQL資料庫安全性功能,允許開發者根據用戶的角色或權限來限制對數據表中資料的訪問權限。
例如管理員可以設定一個表格中所有資料可以給所有用戶讀取,但是新增、修改與刪除需要這筆資料的擁有者才能夠操作。
詳細的說明可以在PostgreSQL的網站上找到、或是可以直接在Supabase的文件中找到對RLS的解釋與應用。
滿推薦可以看Supabase官方的影片詳細說明介紹並有提供一個實際案例。

效率的提升

以往的APP是由後端去判斷目前這個使用者是否有權限可以訪問資料庫的內容,並且還要判斷是否為信任來源等等安全性考量。
而Supabase中使用的RLS則是可以讓客戶端直接與資料庫互動,並且根據設定的RLS政策去決定表格內容是否允許當前使用者訪問;這其中也增加訪問資料庫的效率。

設定RLS

頁面介紹

在Supabase中設定RLS的地方要在左側書籤找到Authentication這個
點擊Policies這個按鈕,此時就會看到右側出現上篇文章新建的表格members 表格。
目前的狀態是啟用RLS中,但無任何政策,這個狀態代表說目前表格有被RLS保護,但沒有說什麼情況下可以給使用者使用(讀取、新增、修改、刪除),所以如果現在用API訪問這個表格所有結果都是被拒絕。

新增RLS政策

讓所有人可以讀取

點擊表格列表中右上角的New Policy按鈕,直接選擇上面Get started quickly按鈕,如果本身對於SQL相關有經驗的人也可以直接點擊下面完全客製的按鈕自己撰寫RLS政策。
可以看到Supabase有提供四個標準模板,可以直接新增第一個政策Enable read access to everyone,讓所有人讀取表格內的資料,點擊Use this template後繼續點擊Review和Save policy儲存這個RLS政策。
到這裡可以看到目前表格已經有一種RLS政策,內容正是可以讓所有人讀取,這麼一來如果現在使用API訪問表格即可獲得表格資料。

只有已登入者才能新增資料

接著也是很常用到的政策Enable insert access for authenticated users only,也就是只有已登入者才能在表格中新增資料,這麼做的好處是知道此筆資料的主人是誰,目前只是因為範例所以欄位較為簡單,否則是可以在新增的同時紀錄使用者ID等資訊。
這個政策剛好也在範例模板裡面有提供。
直接在範例這邊選擇第二個政策,內容毋須調整只要依循上面的步驟進行新增的動作。
完成後的內容會是這樣,現在只有成功登入的使用者可以對這個表格進行新增資料的動作。

其餘政策

當然有讀取、新增資料的權限當然要有修改、刪除資料的權限,在Supabase提供的模板裡面直接就有提供模板政策可以新增,但因為範例中使用的表格欄位沒有紀錄那麼多資訊,如果要使用模板的話自己新增對應判斷的欄位,或是稍微修改判斷式。
更多資訊可以閱讀官方提供的文件和範例:

總結

Row Level Security 是Supabase中一項有用的功能,透過合理地使用安全性策略,我們可以確保不同用戶只能訪問他們有權限的資料,同時保護整個APP的安全性。
這篇文章是相對基礎內容,若資料欄位更為多元,RLS判斷也會相對複雜,大部分從Supabase提供的模板中修改對應欄位判斷式是目前我的作法,分享給大家。

有興趣的內容

6會員
23內容數
沙龍新手
留言0
查看全部
發表第一個留言支持創作者!
技術叢林 的其他內容
創第一個Supabase專案
閱讀時間約 4 分鐘
Supabase的資料庫和表格
閱讀時間約 3 分鐘
你可能也想看
原紫短文025:您是否尋找列用AI提升寫作效率的有效策略?您是否尋找列用AI提升寫作效率的有效策略? 在當今AI時代,我們可能都對如何提升寫作效率感到困擾。你是否曾想過,AI工具或許可以提供絕佳的解決方案?在這篇文章中,我們將透過三個重要面向來探討:利用AI寫作工具、維持人類獨特性,以及實踐提升寫作效率的方法。 在寫作過程中,我們可以透過
Thumbnail
avatar
王啟樺
2023-06-21
【超過30歲後,如何以閱讀與寫作的平衡,鍛鍊心靈的3個關鍵】 身心平衡是每個超過30歲的人必須要維護的。 透過閱讀與寫作的平衡,你可以鍛鍊你的心靈,練習更好的消化與吸收知識。 在這裡,我將分享我如何利用閱讀與寫作這兩種方式鍛鍊心靈的三大關鍵。 關鍵1 - 讀寫的平衡:就如同飲食與運動的平衡,閱讀讓我們吸收知識,而寫作則如同運動,將所學知識消化與吸收。如果只有吸
Thumbnail
avatar
王啟樺
2023-06-21
十七年的轉變十七年,足夠這個世界及一個國際大都會作很多轉變⋯⋯
avatar
Yuk-AnOrdinaryGuy
2023-06-21
【想要辭職了嗎?掌握工作自由度,抵抗職業枯竭的3個實踐策略】工作中,你能決定哪些部分呢? 如果一個人在工作沒什麼自由度,沒有決策權,那麼很快就會職業枯竭,有能力做但沒興趣。 我從事的學術產業,就非常需要熱情,來避免職業枯竭。下面是我掌握工作自由度,抵抗職業枯竭的3個實踐策略: 策略1 - 善用自己的決策權,打破工作中的枯燥:你必須完成老闆交代的事情,但是「完
Thumbnail
avatar
王啟樺
2023-06-21
台股遇壓量縮,走勢仍是進攻態勢!陸股無法突破壓力,就是拉回的走勢!台股量縮震盪,守在5日線上,走勢仍是攻擊型態! 櫃買留下墓碑線,但上影線是多方進攻的痕跡,加上實質走勢是日出走勢,多方將持續進攻! 陸股持續拉回,近期的觀盤重點,下檔支撐不能跌破!
Thumbnail
avatar
股海的諾亞方舟
2019-11-29
時光任意門-騎機車的時候 一開始我是最反對騎機車載妳的,不過就像其他事情一樣,如果很多事情都堅持意見的話,生活大概不會過的太平順,但至少希望可以好好的使用安全帽和安全帶,好好的小心道路狀況。 以往也曾聽聞父母親從小到大都不讓孩子騎機車的事例,當時並不覺得有這個必要,甚至覺得這些父母也太誇張了。現在倒是可以體會這些父母的用心
Thumbnail
avatar
Erwin Tsai
2019-11-29
台灣港人速寫日記#92 香港人的新生活 新里程飛機劃過長空,萬里無雲的晨光下,就是那個久別了的香港!飛機上幾排椅子都無人,作為全球最繁忙的航線,都因為警暴而嚇怕遊客,不敢再來香港玩了。冷冷清清的機場暢通無阻,輕鬆過關,提取行李,天爸終於回到香港了! 這幾個月改變了香港人,由以往只看實利、貪小便宜的香港人,變成舉世皆知的抗爭民族⋯⋯
Thumbnail
avatar
天爸
2019-11-28
不愛吃你的飯=種族歧視?我聽過更難聽的話語BBC中文網刊登了一篇報導關於一則對印度料理批評的推特所引起的種族歧視爭議(原文『美國移民:美食保衛戰引發種族歧視大辯論』),事件起於美國國際關係學教授湯姆·尼科爾斯在推特上了嫌棄印度料理後收到各方從尼科爾斯自身品味到種族歧視等批評與討論,事後尼科爾斯承認自己只吃過美國及英國當地印度餐廳裡的餐點、
Thumbnail
avatar
影山潮
2019-11-28
大人的部落格寫作課[高級篇] - 數位行銷、廣告收入優化與進階經營策略不管做任何事,熱情很重要,興趣很重要,但有實質的回饋可以走更遠,像是錢。用寫文章來賺錢的方式有很多種,在網站上放廣告、接業配、加入聯盟行銷等。
Thumbnail
avatar
ARON HACK 亞倫害的
2019-11-28
大人的部落格寫作課[初級篇] - 考試作文沒拿過高分,不代表你不會寫文章說到寫文章,多數人第一個反應不出以下幾種,「我作文很爛欸,國高中作文很少及格」、「我文筆不好,寫出來的東西一點都不吸引人」、「我有想過寫部落格,但不知道要寫什麼」。這三種反應有點像考試遺毒還沒解:不必再接受考試摧殘了,卻也忘了將考試分數的枷鎖卸下來;好像不考作文了,就不會再書寫。
Thumbnail
avatar
ARON HACK 亞倫害的
2019-11-28