Pular para o conteúdo principal

Policy Storage

No Casbin, o armazenamento de política é implementado como um adaptador.

Carregando política de um arquivo .CSV

Esta é a maneira mais comum de usar o Casbin. É fácil de entender para iniciantes e conveniente para compartilhar quando você pede ajuda à equipe do Casbin.

O conteúdo do arquivo .CSV examples/rbac_policy.csv é o seguinte:

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

Se o seu arquivo contém vírgulas, você deve envolvê-las em aspas duplas. Por exemplo:

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

Se o seu arquivo contém vírgulas e aspas duplas, você deve envolver o campo em aspas duplas e duplicar quaisquer aspas duplas incorporadas.

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

Problema relacionado: casbin#886

API do Adaptador

MétodoTipoDescrição
LoadPolicy()básicoCarregar todas as regras de política do armazenamento
SavePolicy()básicoSalvar todas as regras de política no armazenamento
AddPolicy()opcionalAdicionar uma regra de política ao armazenamento
RemovePolicy()opcionalRemover uma regra de política do armazenamento
RemoveFilteredPolicy()opcionalRemover regras de política que correspondam ao filtro do armazenamento

Formato de Armazenamento de Banco de Dados

Seu arquivo de política

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

Estrutura de banco de dados correspondente (como MySQL)

idptypev0v1v2v3v4v5
1pdata2_admindata2read
2pdata2_admindata2write
3galiceadmin

Significado de cada coluna

  • id: A chave primária no banco de dados. Não existe como parte da política casbin. A forma como é gerado depende do adaptador específico.

  • ptype: Corresponde a p, g, g2, etc.

  • v0-v5: Os nomes das colunas não têm um significado específico e correspondem aos valores no policy csv da esquerda para a direita. O número de colunas depende de quantas você define por si mesmo. Em teoria, pode haver um número infinito de colunas, mas geralmente apenas 6 colunas são implementadas no adaptador. Se isso não for suficiente para você, por favor, envie um problema para o repositório do adaptador correspondente.

Detalhes do Adaptador

Para mais detalhes sobre o uso da API do adaptador e o design da estrutura da tabela do banco de dados, por favor, visite: /docs/adapters