SQLAlchemy Adapter is the SQLAlchemy adapter for PyCasbin. With this library, Casbin can load policy from SQLAlchemy supported database or save policy to it.
Based on Officially Supported Databases, The current supported databases are:
- PostgreSQL
- MySQL
- SQLite
- Oracle
- Microsoft SQL Server
- Firebird
- Sybase
pip install sqlalchemy_adapter
You can save and load policy to database.
import sqlalchemy_adapter
import casbin
adapter = sqlalchemy_adapter.Adapter('sqlite:///test.db')
e = casbin.Enforcer('path/to/model.conf', adapter)
sub = "alice" # the user that wants to access a resource.
obj = "data1" # the resource that is going to be accessed.
act = "read" # the operation that the user performs on the resource.
if e.enforce(sub, obj, act):
# permit alice to read data1
pass
else:
# deny the request, show an error
pass
By default, policies are stored in the casbin_rule
table.
You can custom the table where the policy is stored by using the table_name
parameter.
import sqlalchemy_adapter
import casbin
custom_table_name = "<custom_table_name>"
# create adapter with custom table name.
adapter = sqlalchemy_adapter.Adapter('sqlite:///test.db', table_name=custom_table_name)
e = casbin.Enforcer('path/to/model.conf', adapter)
This project is licensed under the Apache 2.0 license.