Skip to main content
Cette page fait partie d’une compétence d’agent de code IA et est écrite pour les agents, pas pour les humains. Pour la documentation Base44 lisible par un humain, consultez la documentation développeur.

Exemples RLS

Modèles pratiques de sécurité au niveau ligne pour les types d’applications courants. Important : RLS Base44 prend en charge :
  • Opérateurs logiques : $or, $and, $nor pour combiner des conditions
  • Opérateurs de champ (pour les champs data.*) : $in, $nin, $ne, $all
  • user_condition : égalité uniquement (pas d’opérateurs)

Sommaire


Modèles simples (JSON Schema)

Ces modèles fonctionnent avec le format RLS de schéma JSON.

Application Todo — accès réservé au propriétaire

Les utilisateurs voient et gèrent uniquement leurs propres tâches.

Formulaire de contact — création publique, lecture admin uniquement

Tout le monde peut soumettre, seuls les administrateurs peuvent voir les soumissions.

Profil utilisateur — auto-gestion

Les utilisateurs ne peuvent accéder qu’à leur propre profil.

Données de département — accès au même département

Les utilisateurs ne peuvent voir que les enregistrements de leur département.

Abonnement — géré par l’admin, lisible par l’utilisateur via le champ e-mail

Note : ce modèle permet aux utilisateurs de lire uniquement leur propre abonnement. Les administrateurs doivent utiliser l’UI du tableau de bord pour configurer un accès en lecture supplémentaire pour eux-mêmes.

Données privées — propriétaire uniquement

Lecture publique, écriture authentifiée

Tout le monde peut lire, seuls les utilisateurs connectés peuvent créer/modifier leurs propres enregistrements.

Utilisation des opérateurs

Opérateurs logiques

Combinez plusieurs conditions avec $or, $and ou $nor : Accès propriétaire OU admin :
Plusieurs rôles avec $or :

Opérateurs de champ pour les champs data.*

Utilisez $in, $nin, $ne, $all pour comparer les champs de données d’entité : Accès basé sur des tags ($in) :
Exclure certains statuts ($nin) :
Différent ($ne) :
Tous les tags doivent correspondre ($all) :

Combiner opérateurs logiques et de champ


Exemples de sécurité au niveau champ

Contrôlez l’accès à des champs précis d’une entité.

Champ salaire sensible

Champs internes réservés aux admins


Modèles complexes (UI du tableau de bord ou backend)

Certains modèles peuvent encore nécessiter l’UI du tableau de bord ou des fonctions backend.

Relations bidirectionnelles (par exemple, amitiés, matches)

Besoin : l’une ou l’autre des parties d’une relation doit avoir accès. Désormais possible avec $or :
Solutions alternatives :
  1. Refonte d’entité : stocker deux enregistrements par relation (un pour chaque partie)
  2. Fonction backend : interroger avec une logique personnalisée

Logique métier complexe

Besoin : l’accès dépend de plusieurs champs d’entité avec des conditions complexes. Limitation du JSON Schema : même si les opérateurs aident, une logique métier très complexe peut rester difficile à exprimer. Options de solution :
  1. Fonction backend : implémenter une logique d’accès personnalisée
  2. Combiner des règles plus simples : décomposer les règles complexes en règles plus simples au niveau entité et au niveau champ

Bonnes pratiques

Stratégie de sécurité

Utilisez une combinaison de RLS au niveau entité et de sécurité au niveau champ :

Quand utiliser chaque approche

Modèles de rôle courants

Résumé des opérateurs pris en charge

Résumé des limitations

Cette page a été traduite à l’aide de l’IA. Pour les informations les plus précises et à jour, consultez la version anglaise.