Passer au contenu principal

Policy Storage

Casbin implements policy storage through adapters.

Chargement de la politique à partir d'un fichier .CSV

Loading from a CSV file is the standard approach. This method is straightforward for beginners and convenient when seeking help from the Casbin team.

Here's an example CSV file examples/rbac_policy.csv:

p, alice, data1, read
p, bob, data2, write
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, data2_admin
note

When CSV fields contain commas, wrap them in double quotes:

p, alice, "data1,data2", read    --correct
p, alice, data1,data2, read --incorrect (the whole phrase "data1,data2" should be wrapped in double quotes)

When fields contain both commas and double quotes, wrap the field in double quotes and escape embedded quotes by doubling them:

p, alice, data, "r.act in (""get"", ""post"")"        --correct
p, alice, data, "r.act in ("get", "post")" --incorrect (you should use "" to escape "")

Problème lié : casbin#886

API de l'adaptateur

MéthodeTypeDescription
LoadPolicy()basiqueCharger toutes les règles de politique à partir du stockage
SavePolicy()basiqueEnregistrer toutes les règles de politique dans le stockage
AddPolicy()optionnelAjouter une règle de politique au stockage
RemovePolicy()optionnelSupprimer une règle de politique du stockage
RemoveFilteredPolicy()optionnelSupprimer les règles de politique qui correspondent au filtre du stockage

Format de stockage de la base de données

Votre fichier de politique

p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, admin

Structure de base de données correspondante (comme MySQL)

idptypev0v1v2v3v4v5
1pdata2_admindata2lire
2pdata2_admindata2écrire
3galiceadmin

Signification de chaque colonne

  • id: Database primary key, not part of the Casbin policy. Generation method depends on the adapter implementation.

  • ptype: Corresponds to p, g, g2, etc.

  • v0-v5: Generic column names that map to policy CSV values from left to right. The number of columns depends on your policy definition. Most adapters implement 6 columns, though theoretically unlimited columns are possible. Submit an issue to the adapter repository if you need more columns.

Détails de l'adaptateur

For more information about the adapter API and database structure design, see /docs/adapters.