問題 1 / 5

為什麼 Supabase 決定取消資料表「預設公開」的機制?

AI 根據文章內容回答
Supabase 取消「預設公開」機制主要基於兩大核心理由。首先是為了追求極致的「預設安全」 (Secure by Default)。在舊有的預設設定中,開發者一旦建立新資料表,系統會自動賦予 anon、authenticated 和 service_role 完整的 CRUD(讀寫改刪)權限。雖然這能讓開發者在客戶端立即拉取資料,卻也帶來嚴重的資安隱患。如果開發者在開發過程中忘記設定資料列層級安全 (RLS),該資料表就會如同「駭客的免費提款機」般完全暴露。隨著 AI 寫碼工具(如 GitHub Copilot、Cursor)與 CLI 自動化腳本的普及,許多資料表是在缺乏人工二次審查的情況下產生的,取消自動公開能從根本上杜絕因疏忽而導致的資安悲劇。其次,這項改變是為了落實「基礎設施代碼化」 (Infrastructure as Code)。未來的存取控制將完全依賴明確的 PostgreSQL GRANT 聲明,這使得權限控管變得可被搜尋 (Greppable) 與可被差異比對 (Diffable)。對於追求嚴謹架構的開發團隊而言,這種做法讓權限變動成為可追蹤的程式碼,是邁向企業級架構的重要一步。透過將「預設方便」轉向「預設安全」,雖然增加了開發初期的手續,但能為產品的長遠生命週期省下無數除錯與防堵漏洞的時間。

其他問題

Q2 這項更新會影響到哪些開發者?哪些情況則不受影響? Q3 Supabase 針對這項破壞性更新設定了哪些關鍵的時間節點? Q4 在新的規範下,開發者建立資料表並希望透過 API 存取時,應遵循哪些步驟? Q5 現有專案的開發者可以採取哪些策略來提早因應這項變革?