본문으로 건너뛰기

Policy Storage

Casbin의 정책 저장은 adapters에 의해 처리됩니다. 인포서는 어댑터 API를 통해 정책을 로드하고 (선택적으로) 저장합니다.

CSV 파일에서 정책 로드하기​

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을 참조하세요.

Adapter API​

MethodTypeDescription
LoadPolicy()basic스토리지에서 모든 정책 규칙을 로드합니다.
SavePolicy()basic모든 정책 규칙을 스토리지에 저장합니다.
AddPolicy()optional스토리지에 정책 규칙을 추가합니다.
RemovePolicy()optional스토리지에서 정책 규칙을 제거합니다.
RemoveFilteredPolicy()optional필터와 일치하는 정책 규칙을 스토리지에서 제거합니다.

데이터베이스 저장 형식​

예시 정책 (CSV)

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

일반적인 데이터베이스 구조 (예: MySQL)

idptypev0v1v2v3v4v5
1pdata2_admindata2read
2pdata2_admindata2write
3galiceadmin

열(Column)

  • id — 기본 키 (어댑터별로 다름; Casbin 정책의 일부가 아님).
  • ptype — 정책 유형: p, g, g2 등.
  • v0–v5 — 순서대로 나열된 정책 필드 (CSV에서 왼쪽에서 오른쪽으로). 대부분의 어댑터는 6개의 열을 사용하며, 일부는 더 많은 열을 지원합니다. 추가 필드가 필요한 경우 어댑터 문서를 확인하세요.

전체 어댑터 API 및 설계 세부 사항은 Adapters를 참조하세요.

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