0927
LOGS
RLS(Row Level Security)
- この用語自体知らんかった←
- 参考記事 見ながら学んでみる
input log
- どのユーザーが,度のデータにアクセスできるのかをきっちり制御するときに有効
特定の行に対するアクセスをユーザーごとに制御する機能
- 特定のユーザーやロール毎に特定の行のみアクセスを許可できるのか.へー
- もっというと,読み書きできるようにしたり,読みのみにできたりか
- PostgreSQL の機能のようだ
- これって
MySQL
にあったかな?
- これって
ALTER TABLE
文でテーブルごとに有効化し,行のアクセスを制御するためのポリシーを定義するとφ(・・- クエリ例
employees
テーブル- 各従業員には自分のデータのみを閲覧できるようにしたい
ALTER TABLE employees ENABLE ROW LEVEL SECURITY; CREATE POLICY employee_view_own_data ON employees FOR SELECT TO employee USING (user_id = current_user_id());
- これ便利やん.アプリのコードでセキュリティ対策の実装しなくて良くなる
- 注意点は確かに.複雑になる可能性があるので,コアなデータを扱うテーブルにのみ設定するのが良さそうや
- また,適切なテストと慎重な実装もそう
- 複数ポリシーを組み合わせるケース(それもできるのね)
- パフォーマンスもそうね
- この記事も参考になるというか,まさにうちのケースだ
- https://zenn.dev/nstock/articles/multi-tenant-saas-using-rls
- マルチテナントにしたら,お客様ごとの管理しないといけないので,管理コストが高いし,リスクも高い
- 余談だが,PostgreSQL は絡むレベルでの権限設定が可能らしい