Trước hết, loại kế hoạch bảo mật nào bạn dự định thực hiện? Kiểm soát truy cập dựa trên vai trò (RBAC) hoặc Kiểm soát truy cập tùy ý (DAC)?
RBAC trong mô hình Điều khiển truy cập dựa trên vai trò (RBAC), quyền truy cập vào tài nguyên dựa trên vai trò được gán cho người dùng. Trong mô hình này, quản trị viên gán cho người dùng một vai trò có quyền và đặc quyền được xác định trước. Do sự liên kết của người dùng với vai trò, người dùng có thể truy cập vào một số tài nguyên nhất định và thực hiện các tác vụ cụ thể. RBAC còn được gọi là Kiểm soát truy cập không tùy ý. Các vai trò được gán cho người dùng được quản lý tập trung.
DAC Trong mô hình Kiểm soát truy cập tùy ý (DAC), quyền truy cập vào tài nguyên dựa trên danh tính của người dùng. Người dùng được cấp quyền cho tài nguyên bằng cách được đặt trong danh sách kiểm soát truy cập (ACL) được liên kết với tài nguyên. Một mục trên ACL của tài nguyên được gọi là Mục kiểm soát truy cập (ACE). Khi người dùng (hoặc nhóm) là chủ sở hữu của một đối tượng trong mô hình DAC, người dùng có thể cấp quyền cho người dùng và nhóm khác. Mô hình DAC dựa trên quyền sở hữu tài nguyên.
xem nguồn
1) Trong RBAC: bạn cần bảng ElementType để gán quyền cho vai trò (người dùng được gán cho vai trò). RBAC định nghĩa: "Vai trò / người dùng này có thể làm gì". Quản trị viên gán quyền cho vai trò và quyền cho vai trò, gán người dùng cho (các) vai trò để truy cập tài nguyên. 2) Trong DAC: người dùng và vai trò có quyền đối với các yếu tố thông qua danh sách kiểm soát truy cập (quyền sở hữu). DAC định nghĩa: "ai có quyền truy cập vào dữ liệu của tôi". Người dùng (chủ sở hữu) cấp quyền cho tài nguyên thuộc sở hữu.
Bất kỳ cách nào tôi đề xuất mô hình dữ liệu này:
CREATE TABLE ElementType
(
Id (PK)
Name
...
)
CREATE TABLE ElementBase
(
Id (PK)
Type (FK to ElementType)
...
)
(mối quan hệ 1-1)
CREATE TABLE Element_A
(
Id (PK, FK to ElementBase)
...
)
CREATE TABLE Element_B
(
Id (PK, FK to ElementBase)
...
)
1) RBAC (mối quan hệ nhiều-nhiều)
CREATE TABLE ElementType_To_Role_Rights
(
RightId (PK)
RoleId (FK to Role)
ElementTypeId (FK to ElementType)
...
)
2) DAC (mối quan hệ nhiều-nhiều)
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)
...
)