सबसे पहले, आप किस प्रकार के सुरक्षा मॉडल को लागू करने की योजना बनाते हैं? भूमिका आधारित अभिगम नियंत्रण (RBAC) या विवेकाधीन अभिगम नियंत्रण (DAC)?
रोल-बेस्ड एक्सेस कंट्रोल (RBAC) मॉडल में RBAC, संसाधनों तक पहुंच उपयोगकर्ता को सौंपी गई भूमिका पर आधारित है। इस मॉडल में, एक व्यवस्थापक उपयोगकर्ता को एक ऐसी भूमिका सौंपता है जिसमें कुछ पूर्वनिर्धारित अधिकार और विशेषाधिकार होते हैं। भूमिका के साथ उपयोगकर्ता के जुड़ाव के कारण, उपयोगकर्ता कुछ संसाधनों का उपयोग कर सकता है और विशिष्ट कार्य कर सकता है। RBAC को गैर-विवेकाधीन अभिगम नियंत्रण के रूप में भी जाना जाता है। उपयोगकर्ताओं को सौंपी गई भूमिकाएं केंद्र द्वारा प्रशासित हैं।
DAC, डिस्क्रिटरी एक्सेस कंट्रोल (DAC) मॉडल में, संसाधनों तक पहुंच उपयोगकर्ता की पहचान पर आधारित है। उपयोगकर्ता को संसाधन से जुड़े एक्सेस कंट्रोल लिस्ट (ACL) पर रखकर किसी संसाधन को अनुमति दी जाती है। एक संसाधन के ACL पर एक प्रवेश एक एक्सेस कंट्रोल एंट्री (ACE) के रूप में जाना जाता है। जब कोई उपयोगकर्ता (या समूह) डीएसी मॉडल में किसी वस्तु का मालिक होता है, तो उपयोगकर्ता अन्य उपयोगकर्ताओं और समूहों को अनुमति दे सकता है। DAC मॉडल संसाधन स्वामित्व पर आधारित है।
स्रोत देखें
1) RBAC में: आपको भूमिका के अधिकार प्रदान करने के लिए ElementType तालिका की आवश्यकता होती है (उपयोगकर्ताओं को भूमिका के लिए असाइन किया गया है)। RBAC परिभाषित करता है: "यह भूमिका / उपयोगकर्ता क्या कर सकता है"। प्रशासक भूमिकाओं के लिए भूमिकाओं और अनुमतियों के अधिकार प्रदान करता है, उपयोगकर्ताओं को संसाधनों तक पहुंचने के लिए भूमिका (एस) प्रदान करता है। 2) डीएसी में: उपयोगकर्ताओं और भूमिकाओं का एक्सेस कंट्रोल लिस्ट (स्वामित्व) के माध्यम से तत्वों पर अधिकार है। डीएसी परिभाषित करता है: "जिनके पास मेरे डेटा तक पहुंच है"। उपयोगकर्ता (स्वामी) स्वामित्व वाले संसाधन को अनुमति देता है।
किसी भी तरह से मैं इस डेटा मॉडल का सुझाव देता हूं:
CREATE TABLE ElementType
(
Id (PK)
Name
...
)
CREATE TABLE ElementBase
(
Id (PK)
Type (FK to ElementType)
...
)
(वन टू वन रिलेशनशिप)
CREATE TABLE Element_A
(
Id (PK, FK to ElementBase)
...
)
CREATE TABLE Element_B
(
Id (PK, FK to ElementBase)
...
)
1) आरबीएसी (कई-कई रिश्ते)
CREATE TABLE ElementType_To_Role_Rights
(
RightId (PK)
RoleId (FK to Role)
ElementTypeId (FK to ElementType)
...
)
2) डीएसी (कई-कई रिश्ते)
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)
...
)