什麼是 資料列層級安全性?
資料列層級安全性(RLS)是資料庫的一項功能,它逐列決定每位使用者能讀取或修改哪些紀錄,因此即使應用程式多要求了資料,客戶也只會看到自己的訂單。
沒有它的話,「使用者只能看到自己的資料」這項規則就只存在於應用程式的程式碼中。只要有一個畫面或 API 忘了檢查,私人資料就可能外洩。
使用資料列層級安全性時,這項規則就存在於資料庫本身。你撰寫一條政策,例如「只有當 orders 中某一列的 customer_id 與已登入使用者相符時,該列才可見」,資料庫就會把它套用到每一次查詢上。
Postgres 支援資料列層級安全性,而部分後端服務大量依賴它,因為它們的應用程式會直接從瀏覽器與資料庫溝通。在這類架構中,沒有設定政策的資料表可能任何人都能讀取。
RLS 只是一層防護,而不是唯一的防護。應用程式仍然需要妥善的登入機制、伺服器端檢查,以及對管理員存取權的謹慎處理。
範例
- 入口網站中的客戶只能看到自己的文件
- 工具中的每個團隊只能看到自己的專案
常見問題
我需要資料列層級安全性嗎?
如果你的應用程式為大量使用者儲存私人資料,而且其中任何部分會直接從瀏覽器查詢資料庫,那就需要。如果所有存取都經過會檢查權限的後端,RLS 則是額外的安全網。
資料列層級安全性和角色是同一回事嗎?
不是。角色描述某人是哪一種使用者,例如管理員或一般會員。資料列層級安全性則是利用使用者的 ID 或角色等資訊,決定他們能存取哪些特定資料列。
另請參閱
Mythex · Pricing · 用 AI 打造任何東西 · 網站與應用程式範本 · Mythex 比較 · AI 應用程式開發詞彙表 · 免費的 AI 應用程式開發工具 · English