Öncelikle, ne tür bir güvenlik modeli uygulamayı düşünüyorsunuz? Rol Tabanlı Erişim Kontrolü (RBAC) veya İsteğe Bağlı Erişim Kontrolü (DAC)?
Rol Tabanlı Erişim Kontrolü (RBAC) modelindeki RBAC, kaynaklara erişim bir kullanıcıya atanan role dayanmaktadır. Bu modelde, bir yönetici, önceden belirlenmiş belirli haklara ve ayrıcalıklara sahip bir role kullanıcı atar. Kullanıcının rolle ilişkisi nedeniyle, kullanıcı belirli kaynaklara erişebilir ve belirli görevleri gerçekleştirebilir. RBAC ayrıca isteğe bağlı olmayan erişim denetimi olarak da bilinir. Kullanıcılara atanan roller merkezi olarak yönetilir.
DAC İsteğe Bağlı Erişim Kontrolü (DAC) modelinde, kaynaklara erişim kullanıcının kimliğine dayanır. Kullanıcıya, kaynakla ilişkilendirilmiş bir erişim kontrol listesine (ACL) yerleştirilerek bir kaynağa izin verilir. Bir kaynağın ACL'sindeki bir giriş Erişim Kontrol Girişi (ACE) olarak bilinir. Bir kullanıcı (veya grup) DAC modelinde bir nesnenin sahibi olduğunda, kullanıcı diğer kullanıcılara ve gruplara izin verebilir. DAC modeli kaynak sahipliğine dayanmaktadır.
kaynağı gör
1) RBAC'da: rol hakkını atamak için ElementType tablosuna ihtiyacınız vardır (kullanıcılar rollere atanır). RBAC şunları tanımlar: "Bu rol / kullanıcı ne yapabilir". Yönetici roller için roller için haklar ve roller için izinler atar, kullanıcıları kaynaklara erişmek için rollere atar. 2) DAC’de: kullanıcılar ve rollerin erişim kontrol listesi (mülkiyet) üzerinden öğeler üzerinde hakları vardır. DAC şunları tanımlamaktadır: "verilerime kimin erişimi var". Kullanıcı (sahip) sahip olduğu kaynağa izin verir.
Herhangi bir şekilde bu veri modelini öneririm:
CREATE TABLE ElementType
(
Id (PK)
Name
...
)
CREATE TABLE ElementBase
(
Id (PK)
Type (FK to ElementType)
...
)
(bire bir ilişki)
CREATE TABLE Element_A
(
Id (PK, FK to ElementBase)
...
)
CREATE TABLE Element_B
(
Id (PK, FK to ElementBase)
...
)
1) RBAC (çoktan çoğa ilişki)
CREATE TABLE ElementType_To_Role_Rights
(
RightId (PK)
RoleId (FK to Role)
ElementTypeId (FK to ElementType)
...
)
2) DAC (çoktan çoğa ilişki)
CREATE TABLE ElementBase_To_Actor_Rights
(
RightId (PK)
ElementBaseId (FK to ElementBase)
ActorId (FK to Actor)
...
)
CREATE TABLE Actor
(
Id (PK)
Name
)
CREATE TABLE User
(
Id (PK, FK to Actor)
Password
...
)
CREATE TABLE Role
(
Id (PK, FK to Actor)
...
)