用語集

行レベルセキュリティとは?

行レベルセキュリティ(RLS)は、行ごとに、各ユーザーが読んだり変更したりできるレコードを決めるデータベースの機能です。アプリがより多くを求めても、顧客は自分の注文だけを見られます。

この機能がないと、「ユーザーは自分のデータだけを見られる」というルールはアプリのコードに置かれます。一つの画面やAPIが確認を忘れると、非公開のデータが漏れるおそれがあります。

行レベルセキュリティでは、ルールはデータベース自体に置かれます。「ordersの行は、customer_idがサインイン中のユーザーと一致する場合にのみ見える」のようなポリシーを書けば、データベースがすべての問い合わせにそれを適用します。

PostgresはRLSに対応しており、アプリがブラウザから直接データベースに接続する一部のバックエンドサービスは、これに大きく依存しています。そうした構成では、ポリシーのないテーブルは誰でも読めてしまうことがあります。

RLSは保護の一層であり、唯一のものではありません。アプリには、適切なサインイン、サーバー側の確認、管理者アクセスの慎重な扱いも引き続き必要です。

例

  • ポータルのクライアントは、自分の書類だけを見る
  • ツールの各チームは、自分のプロジェクトだけを見る

よくある質問

行レベルセキュリティは必要ですか?

アプリが多くの利用者の非公開データを保存し、その一部がブラウザから直接データベースに問い合わせる場合は必要です。すべてのアクセスが権限を確認するバックエンドを通る場合、RLSは追加の安全網になります。

行レベルセキュリティはロールと同じですか?

違います。ロールは、管理者やメンバーなど、その人がどんな種類のユーザーかを表します。行レベルセキュリティは、ユーザーのIDやロールといった事実を使って、どの特定の行に到達できるかを決めます。

関連項目

  • ロールベースのアクセス制御を追加する方法
  • AIで作ったアプリのセキュリティチェックリスト

Mythex · Pricing · AIでなんでも作ろう · ウェブサイト・アプリのテンプレート · Mythexを比較 · AIアプリ開発用語集 · AIアプリ開発の無料ツール · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)