Policy Storage
Trong Casbin, lưu trữ chính sách được triển khai như một adapter.
Tải chính sách từ một tệp .CSV
Đây là cách phổ biến nhất để sử dụng Casbin. Nó dễ hiểu đối với người mới bắt đầu và thuận tiện cho việc chia sẻ khi bạn yêu cầu trợ giúp từ nhóm Casbin.
Nội dung của tệp .CSV
examples/rbac_policy.csv như sau:
p, alice, data1, read
p, bob, data2, write
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, data2_admin
Nếu tệp của bạn chứa dấu phẩy, bạn nên đặt chúng trong dấu ngoặc kép. Ví dụ:
p, alice, "data1,data2", read --correct
p, alice, data1,data2, read --incorrect (the whole phrase "data1,data2" should be wrapped in double quotes)
Nếu tệp của bạn chứa dấu phẩy và dấu ngoặc kép, bạn nên đặt trường trong dấu ngoặc kép và nhân đôi bất kỳ dấu ngoặc kép nhúng nào.
p, alice, data, "r.act in (""get"", ""post"")" --correct
p, alice, data, "r.act in ("get", "post")" --incorrect (you should use "" to escape "")
Vấn đề liên quan: casbin#886
API của Adapter
Phương thức | Kiểu | Mô tả |
---|---|---|
LoadPolicy() | cơ bản | Tải tất cả các quy tắc chính sách từ bộ nhớ |
SavePolicy() | cơ bản | Lưu tất cả các quy tắc chính sách vào bộ nhớ |
AddPolicy() | tùy chọn | Thêm một quy tắc chính sách vào bộ nhớ |
RemovePolicy() | tùy chọn | Xóa một quy tắc chính sách khỏi bộ nhớ |
RemoveFilteredPolicy() | tùy chọn | Xóa các quy tắc chính sách khớp với bộ lọc khỏi bộ nhớ |
Định dạng lưu trữ cơ sở dữ liệu
Tệp chính sách của bạn
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, admin
Cấu trúc cơ sở dữ liệu tương ứng (như MySQL)
id | ptype | v0 | v1 | v2 | v3 | v4 | v5 |
---|---|---|---|---|---|---|---|
1 | p | data2_admin | data2 | đọc | |||
2 | p | data2_admin | data2 | viết | |||
3 | g | alice | admin |
Ý nghĩa của mỗi cột
id
: Khóa chính trong cơ sở dữ liệu. Nó không tồn tại như một phần củachính sách casbin
. Cách nó được tạo ra phụ thuộc vào bộ chuyển đổi cụ thể.ptype
: Nó tương ứng vớip
,g
,g2
, v.v.v0-v5
: Tên cột không có ý nghĩa cụ thể và tương ứng với các giá trị trongpolicy csv
từ trái sang phải. Số lượng cột phụ thuộc vào bao nhiêu cột bạn tự định nghĩa. Về lý thuyết, có thể có một số lượng vô hạn cột, nhưng thông thường chỉ có 6 cột được triển khai trong bộ chuyển đổi. Nếu điều này không đủ cho bạn, vui lòng gửi một vấn đề đến kho lưu trữ bộ chuyển đổi tương ứng.
Chi tiết Bộ chuyển đổi
Để biết thêm chi tiết về việc sử dụng API bộ chuyển đổi và thiết kế cấu trúc bảng cơ sở dữ liệu, vui lòng truy cập: /docs/adapters