Наследование прав доступа

"Это пшеница, что в темном чулане хранится, в доме, который построил Джек"

Джек имеет права на дом, а значит и на темный чулан, а стало быть и на пшеницу. Но чтобы проверить доступ Джека к пшенице, необходимо найти, в каком она хранится чулане, и в чьем доме этот чулан. Авторизация имеет линейную сложность от глубины иерархии объектов, и это плохо, т.к. всю цепочку объектов нужно читать из базы данных или держать в кеше. Становится еще хуже, если граф объектов имеет циклы и распределен между разными серверами.

В статье расказывается, как сделать авторизацию в произвольном распределенном направленном графе объектов с наследованием доступа за почти наверное константное время.

Читать далее