Concepts · authorization models

From RBAC to ReBAC: one more column.

Relationship-based access control is usually introduced through Google's Zanzibar paper, which is accurate but not especially clarifying if you already run role-based access control and want to know what actually differs. The difference is one term in what gets stored. This page works through three escalating requirements to show where that term starts to matter.

RBAC stores
(subject, permission)
"Alice can edit." Which thing she can edit lives in application code, or is encoded into the role's name.
ReBAC stores
(subject, relation, object)
"Alice is editor of document:spec_v4." The object is part of the record, so the database can be asked questions about it.

RBAC

1roles required

Role table

ReBAC

3relationships written

Relationships

The schema

Written once