Casbin Postgres Adapter is the postgres adapter for Casbin
$ go get github.com/casbin/casbin-pg-adapter
package main import ( "database/sql" "os" "github.com/casbin/casbin/v2" "github.com/casbin/casbin-pg-adapter" ) func main() { connectionString := "postgresql://postgres:@localhost:5432/postgres?sslmode=disable" db, err := sql.Open("postgres", os.Getenv("DATABASE_URL")) if err != nil { panic(err) } tableName := "casbin" adapter, err := casbinpgadapter.NewAdapter(db, tableName) // If you are using db schema // myDBSchema := "mySchema" // adapter, err := casbinpgadapter.NewAdapterWithDBSchema(db, myDBSchema, tableName) if err != nil { panic(err) } enforcer, err := casbin.NewEnforcer("./examples/model.conf", adapter) if err != nil { panic(err) } // Load stored policy from database enforcer.LoadPolicy() // Do permission checking enforcer.Enforce("alice", "data1", "write") // Do some mutations enforcer.AddPolicy("alice", "data2", "write") enforcer.RemovePolicy("alice", "data1", "write") // Persist policy to database enforcer.SavePolicy() }