メインコンテンツにスキップ

Policy Storage

Casbinでは、ポリシーストレージはアダプタとして実装されています。

.CSVファイルからポリシーを読み込む

これはCasbinを使用する最も一般的な方法です。 これは初心者にとって理解しやすく、Casbinチームに助けを求めるときに共有するのに便利です。

.CSVファイル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
メモ

ファイルにカンマが含まれている場合は、それらをダブルクォートで囲む必要があります。 例えば:

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

ファイルにカンマとダブルクォートが含まれている場合、フィールドをダブルクォートで囲み、埋め込まれたダブルクォートを二重にする必要があります。

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

関連する問題:casbin#886

アダプタAPI

メソッドタイプ説明
LoadPolicy()基本ストレージからすべてのポリシールールを読み込む
SavePolicy()基本すべてのポリシールールをストレージに保存する
AddPolicy()オプションストレージにポリシールールを追加する
RemovePolicy()オプションストレージからポリシールールを削除する
RemoveFilteredPolicy()オプションフィルターに一致するポリシールールをストレージから削除する

データベースストレージフォーマット

あなたのポリシーファイル

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

対応するデータベース構造(MySQLなど)

idptypev0v1v2v3v4v5
1pdata2_admindata2read
2pdata2_admindata2write
3galiceadmin

各列の意味

  • id: データベースの主キーです。 casbin policyの一部として存在しません。 生成方法は特定のアダプターによります。

  • ptype: pgg2などに対応します。

  • v0-v5: 列名に特定の意味はなく、policy csvの左から右への値に対応します。 列の数は、自分で定義する数によります。 理論的には、列の数は無限になることがありますが、一般的にはアダプターには6列が実装されています。 これがあなたにとって十分でない場合は、対応するアダプターリポジトリに問題を提出してください。

アダプターの詳細

アダプターAPIの使用とデータベーステーブル構造の設計についての詳細は、次をご覧ください:/docs/adapters