- Sécurité au niveau ligne (RLS) : contrôle quels enregistrements les utilisateurs peuvent accéder.
- Sécurité au niveau champ (FLS) : contrôle quels champs dans les enregistrements les utilisateurs peuvent accéder.
L’accès avec le rôle de service ignore ces règles :
base44.asServiceRole contourne entièrement RLS et FLS, quelle que soit la configuration de l’entité. Vous n’avez donc pas besoin d’une règle d’administration correspondante pour lire ou écrire un enregistrement. Il n’est disponible que dans les fonctions backend hébergées par Base44, et votre fonction est responsable des contrôles d’accès nécessaires.Types de permissions
Chaque niveau de sécurité a différentes permissions que vous pouvez définir. Pour chaque permission, vous définissez qui est autorisé à effectuer l’action.Sécurité au niveau ligne (RLS)
create- Ajouter de nouveaux enregistrementsread- Voir les enregistrementsupdate- Modifier les enregistrementsdelete- Supprimer les enregistrements
Sécurité au niveau champ (FLS)
read- Voir le champwrite- Créer ou modifier le champ
Valeurs de permission
Chaque permission accepte l’une des valeurs suivantes :true- Autoriser tous les utilisateursfalse- Bloquer tous les utilisateurs{<condition>}- Autoriser les utilisateurs correspondant à la condition
Différence entre les lectures et les écritures refusées
Les lectures refusées se comportent comme si les données n’existaient pas. Elles ne révèlent donc pas ce qui s’y trouve. Les écritures refusées lèvent une erreur. Une modification bloquée n’échoue donc jamais silencieusement.Syntaxe de condition
Lorsque vous utilisez{<condition>} comme valeur de permission, vous pouvez définir des règles qui vérifient les attributs ou les rôles utilisateur.
Une condition qui référence
{{user.*}} ou utilise user_condition nécessite un appelant authentifié. Un appelant anonyme n’a pas d’utilisateur à comparer. La règle le bloque donc directement au lieu d’être évaluée comme fausse.created_by- E-mail de l’utilisateur qui a créé l’enregistrementcreated_by_id- ID de l’utilisateur qui a créé l’enregistremententity_name- Nom du type d’entitéapp_id- ID de l’applicationenvironment- Soitprodsoitdevis_sample- Si c’est un échantillon de donnéesis_deleted- Indicateur de suppression doucedeleted_date- Quand il a été supprimédata.*- Tout champ des propriétés du schéma de votre entité
{{user.email}}- E-mail de l’utilisateur{{user.id}}- ID de l’utilisateur{{user.role}}- Rôle de l’utilisateur{{user.data.*}}- Champs utilisateur supplémentaires que vous définissez
user_condition.
Champs utilisateur que vous pouvez vérifier :
email- E-mail de l’utilisateurid- ID de l’utilisateurrole- Rôle de l’utilisateurdata.*- Champs utilisateur personnalisés
$or, $and, $nor, $in, $nin, $all
Exemple :
Exemple de sécurité au niveau ligne (RLS)
Ajoutezrls au niveau de l’entité :
Exemple de sécurité au niveau champ (FLS)
Ajoutezrls aux propriétés de champs individuels :
Exemple complet avec sécurité
Voici un schéma d’entité avec RLS et FLS :Déploiement des règles de sécurité
Les règles de sécurité font partie de votre schéma d’entité. Après avoir ajouté ou mis à jour des règles de sécurité, déployez en utilisantentities push. Les règles de sécurité sont également déployées automatiquement lorsque vous exécutez la commande deploy pour déployer l’ensemble de votre projet.
Voir aussi
- Présentation des entités : apprenez la configuration du schéma de base de données
- Schémas d’entités : définissez la structure de votre entité
- Schéma utilisateur : entité intégrée spéciale pour l’authentification utilisateur
- Accès aux données avec le rôle de service : lisez et écrivez des données sans que les règles d’accès s’appliquent
- Structure du projet : comment les schémas d’entités s’intègrent dans votre projet
Cette page a été traduite à l’aide de l’IA. Pour les informations les plus précises et à jour, consultez la version anglaise.