Eğer anlatılan yöntemi - bireysel ayrıcalıkları sütunlarda saklanır - (fark olarak) esneklik pahasına basittir.
Herhangi bir "TABLO DEĞİŞTİRME" ifadeleri gereksinimini ortadan kaldırır dışında Zuul metodu, daha basit ve sizin esas olarak aynıdır. Ancak, kolayca queryable ve kendinden belgeleyen değil, normalize değildir.
Bu yöntemlerin her ikisi ile bir başka sorun kullanıcı tabanı büyüdükçe, düzgün ayarlamak herkesin ayrıcalıklarını korumak için bir ağrı giderek daha bulacaksınız olmasıdır. Tam olarak aynı ayrıcalıklara gerek kullanıcıların bir sürü bulacaksınız. Henüz yeni bir ayrıcalık uyum gibi bir kullanıcının yetkilerini değiştirmek için, sen gidip tek tek ihtiyacı her kullanıcı bu ayrıcalığı eklemek zorunda olacak. Binbaşı PİDE.
Bir forum için, bu kullanıcı başına ayrıcalık yönetimini gerekir ki olası değil. Eğer Bu rol tabanlı erişim denetimi (RBAC) için çok uygundur kılacak vb anonim kullanıcıları, oturum açan kullanıcılar, moderatörler, yöneticiler, gibi kullanıcıların belirli sınıflara sahip olacak muhtemelen. Bu sistemde bir role her bir kullanıcı atamak ve rolü ayrıcalıklar vermek. Ayrıcalıklar bir "ayrıcalık" tablosundaki satır gibi saklanır. yani basitleştirilmiş veritabanı şeması gibi görünecektir:
PRIVILEGE
int id (primary key)
varchar description
ROLE_PRIVILEGE_JOIN
privilege_id (foreign key)
role_id (foreign key)
ROLE
int id (primary key)
varchar description
USER
int id (primary key)
int role_id (foreign key)
Bu desen kullanıcı ayrıcalıkları ile uğraşmak pek çok uygulamada kullanılmaktadır. Herkes belki ayrıcalık tabloda bir satır olarak olabilir her ayrıcalığı ekle; herhangi bir kullanıcı muhtemelen rol tabloda sahip olabilir, her bir rol ekleyin; ve role_privilege_join tabloda bunları uygun şekilde bağlamak.
Tek gerçek dezavantajı bir birleşim tablosu kullanılır, çünkü "kullanıcı X-Y yapabilirim" sorgu biraz daha yavaş olacak olmasıdır.