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策略
的一部分。 它的生成方式取决于具体的适配器。ptype
:它对应于p
,g
,g2
等。v0-v5
:列名没有具体的含义,对应于策略csv
中从左到右的值。 列的数量取决于你自己定义的数量。 理论上,可以有无限多的列,但适配器中通常只实现了6列。 如果这对你来说还不够,请向相应的适配器仓库提交问题。
适配器详情
关于适配器API的使用和数据库表结构设计的更多细节,请访问:/docs/adapters