주요 콘텐츠로 건너뛰기

Policy Storage

Policy storage in Casbin is handled by adapters. The enforcer loads and (optionally) saves policy through the adapter API.

Loading policy from a CSV file​

Using a CSV file is the simplest option and works well for development and examples.

Example: 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
노트

If a field contains commas, wrap it 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)

If a field contains both commas and double quotes, wrap it in double quotes and escape internal 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 "")

See casbin#886.

어댑터 API​

방법타입설명
LoadPolicy()기본저장소에서 모든 정책 규칙을 로드합니다
SavePolicy()기본모든 정책 규칙을 저장소에 저장합니다
AddPolicy()선택 사항저장소에 정책 규칙을 추가합니다
RemovePolicy()선택 사항저장소에서 정책 규칙을 제거하십시오
RemoveFilteredPolicy()선택 사항필터와 일치하는 정책 규칙을 저장소에서 제거하십시오

데이터베이스 저장 형식​

Example policy (CSV)

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

Typical database layout (e.g. MySQL)

idptypev0v1v2v3v4v5
1pdata2_admindata2read
2pdata2_admindata2write
3galiceadmin

Columns

  • id — Primary key (adapter-specific; not part of Casbin policy).
  • ptype — Policy type: p, g, g2, etc.
  • v0–v5 — Policy fields in order (left to right in CSV). Most adapters use 6 columns; some support more. Check the adapter docs if you need extra fields.

For full adapter API and design details, see Adapters.

Comments are powered by giscus and GitHub Discussions. They load from giscus.app and GitHub only after you click the button below.