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)
id | ptype | v0 | v1 | v2 | v3 | v4 | v5 |
---|---|---|---|---|---|---|---|
1 | p | data2_admin | data2 | read | |||
2 | p | data2_admin | data2 | write | |||
3 | g | alice | admin |
각 열의 의미
id
: 데이터베이스의 기본 키입니다.casbin policy
의 일부로 존재하지 않습니다. 생성 방법은 특정 어댑터에 따라 다릅니다.ptype
: 이는p
,g
,g2
등에 해당합니다.v0-v5
: 열 이름은 특정 의미가 없으며, 왼쪽에서 오른쪽으로policy csv
의 값에 해당합니다. 열의 수는 사용자가 정의하는 것에 따라 달라집니다. 이론적으로는 열의 수가 무한히 많을 수 있지만, 일반적으로 어댑터에는 6개의 열만 구현됩니다. 이것이 충분하지 않다면, 해당 어댑터 저장소에 문제를 제출해 주세요.
어댑터 세부 정보
어댑터 API의 사용 및 데이터베이스 테이블 구조 설계에 대한 자세한 내용은 다음을 방문하십시오: /docs/adapters