주요 콘텐츠로 건너뛰기

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: 이는 p, g, g2 등에 해당합니다.

  • v0-v5: 열 이름은 특정 의미가 없으며, 왼쪽에서 오른쪽으로 policy csv의 값에 해당합니다. 열의 수는 사용자가 정의하는 것에 따라 달라집니다. 이론적으로는 열의 수가 무한히 많을 수 있지만, 일반적으로 어댑터에는 6개의 열만 구현됩니다. 이것이 충분하지 않다면, 해당 어댑터 저장소에 문제를 제출해 주세요.

어댑터 세부 정보

어댑터 API의 사용 및 데이터베이스 테이블 구조 설계에 대한 자세한 내용은 다음을 방문하십시오: /docs/adapters