Ana içeriğe atla

Policy Storage

Casbin'de, politika depolama bir adapter olarak uygulanmıştır.

Politika yükleme bir .CSV dosyasından

Casbin'i kullanmanın en yaygın yolu budur. Başlangıç seviyesi kullanıcılar için anlaşılması kolaydır ve Casbin ekibine yardım istediğinizde paylaşım açısından uygundur.

.CSV dosyasının examples/rbac_policy.csv içeriği şu şekildedir:

p, alice, data1, read
p, bob, data2, write
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, data2_admin
not

Dosyanız virgüller içeriyorsa, bunları çift tırnak içine almalısınız. Örneğin:

p, alice, "data1,data2", read    --correct
p, alice, data1,data2, read --incorrect (the whole phrase "data1,data2" should be wrapped in double quotes)

Dosyanız virgül ve çift tırnak içeriyorsa, alanı çift tırnak içine almalı ve gömülü çift tırnakları çiftlemeniz gerekir.

p, alice, data, "r.act in (""get"", ""post"")"        --correct
p, alice, data, "r.act in ("get", "post")" --incorrect (you should use "" to escape "")

İlgili konu: casbin#886

Adaptör API'si

MetodTipAçıklama
LoadPolicy()temelTüm politikaları depolamadan yükle
SavePolicy()temelTüm politika kurallarını depolamaya kaydet
AddPolicy()isteğe bağlıDepolamaya bir politika kuralı ekle
RemovePolicy()isteğe bağlıDepolamadan bir politika kuralını kaldır
RemoveFilteredPolicy()isteğe bağlıDepodan filtreye uyan politikayı kuralını kaldır

Veritabanı Depolama Biçimi

Politika dosyanız

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

İlgili veritabanı yapısı (ör. MySQL)

idptypev0v1v2v3v4v5
1pdata2_admindata2oku
2pdata2_admindata2yaz
3galiceadmin

Her sütunun anlamı

  • id: Veritabanındaki birincil anahtar. casbin politika'nın bir parçası olarak mevcut değildir. Oluşturma şekli, belirli adaptöre göre değişir.

  • ptype: p, g, g2 vb. ile ilgilidir.

  • v0-v5: Sütun adlarının belirli bir anlamı yoktur ve policy csv'deki değerlerle soldan sağa doğru eşleşir. Sütun sayısı, kendi tanımlamanıza bağlıdır. Teoride, sonsuz sayıda sütun olabilir, ancak genellikle adaptörde sadece 6 sütun uygulanır. Eğer bu yeterli değilse, lütfen ilgili adaptör deposuna bir konu gönderin.

Adaptör Ayrıntıları

Adaptör API'si kullanımı ve veritabanı tablo yapısı tasarımı hakkında daha fazla ayrıntı için, lütfen şu adrese gidin: /docs/adapters