ポリシーを指定 CREATE POLICY user_policy ON users USING (tenant_id=current_setting(’current_tenant_id’)); User.where(id: 10) # SELECT * FROM users WHERE id = 10 # idしか指定していないが、tenant_idがcurrent_tenant_idと一致 しているレコードしか取得できない
CUDもできるのでアプリケーションからはViewのデー タベーススキーマに接続するだけで良い CREATE SQL SECURITY DEFINER VIEW viewdb.users AS SELECT * FROM tabledb.users WHERE tenant_id = tabledb.current_tenant_id() WITH CHECK OPTION;
より安全にWriteを制御することができる CREATE SQL SECURITY DEFINER VIEW viewdb.users AS SELECT * FROM tabledb.users WHERE tenant_id = tabledb.current_tenant_id() WITH CHECK OPTION;