oleksandrblazhko / ai181-zalukovskij

2 stars 0 forks source link

CW6 #24

Closed YuriZalukovskiy closed 1 year ago

YuriZalukovskiy commented 1 year ago

Варіант №7 Запитання №1 В презентації, наданої за посиланням https://drive.google.com/file/d/19_SE61Vp0iCTwF-3DPe00iTbT3JbcIqO, розглянуто вирази загальної оцінки трудомісткості операцій керування доступом для DAC, RBAC та MAC-моделей. Припустимо, що вам необхідно забезпечити доступ до БД, враховуючи, що:

  1. Трудомісткість DAC = |S| |O| = 28 21 = 588 Трудомісткість RBAC = |S| |R| + |R| |O| = 28 14 + 14 21 = 686 Трудомісткість MAC = |S| + |O| = 28 + 21 = 49 Перехід від DAC моделі до моделі RBAC збільшує трудомісткість майже в 1.2 рази, що робить цей перехід недоцільним. Перехід від RBAC моделі до MAC моделі зменшує трудомісткість в 14 разів, що робить цей перехід доцільним.

  2. Трудомісткість DAC = |S| |O| = 56 21 = 1176 Трудомісткість RBAC = |S| |R| + |R| |O| = 56 7 + 7 21 = 539 Трудомісткість MAC = |S| + |O| = 56 + 21 = 77 Перехід від DAC моделі до моделі RBAC зменшує трудомісткість майже в 2.2 рази, що робить цей перехід доцільним. Перехід від RBAC моделі до MAC моделі зменшує трудомісткість в 7 разів, що робить цей перехід доцільним.

  3. Зі збільшенням кількості користувачів трудомісткість DAC моделі значно збільшилася, що ускладнює керування. Зі зменшенням кількості ролей трудомісткість RBAC моделі зменшилася, що полегшує управління. Зі збільшенням кількості користувачів трудомісткість MAC моделі збільшилася, що ускладнює керування.

Запитання №2 Припустимо, що програмне забезпечення, яке ви розглядами в лабораторній роботі №1, містить БД, або множину файлів електронних документів, до яких користувачі повинні отримувати доступ. Враховуючи вищесказане, виконайте наступні завдання: 1) наведіть приклади:

  1. Таблиці:
    
    CREATE TABLE access_levels (
    id INTEGER PRIMARY KEY,
    level VARCHAR UNIQUE
    );
    INSERT INTO access_levels VALUES (1, 'public');
    INSERT INTO access_levels VALUES (2, 'private');
    INSERT INTO access_levels VALUES (1, 'secret');

CREATE TABLE user_access_level ( user_name VARCHAR PRIMARY KEY, access_level INTEGER REFERENCES access_levels (id) );

CREATE TABLE trip ( id INTEGER PRIMARY KEY, name VARCHAR, start_date DATE, end_date DATE, budget DOUBLE PRECISION, user VARCHAR, spot_conf INTEGER DEFAULT 3 REFERENCES access_levels (id) );

CREATE TABLE plan ( id INTEGER PRIMARY KEY, name VARCHAR, date TIMESTAMP, is_completed BOOLEAN, trip_id INTEGER REFERENCES trip (id), spot_conf INTEGER DEFAULT 3 REFERENCES access_levels (id) );

CREATE TABLE spending ( id INTEGER PRIMARY KEY, name VARCHAR, date TIMESTAMP, category VARCHAR, amount DOUBLE PRECISION, trip_id INTEGER REFERENCES trip (id), spot_conf INTEGER DEFAULT 3 REFERENCES access_levels (id) );



Користувачі: індивідуальні туристи різного віку, сімейні пари, молодь, активні люди, які хочуть подорожувати та самі планують свої подорожі.

2. Програмне забезпечення працює за моделлю MAC. Кожному звичайному користувачеві надається рівень доступу 2 (private). Кожен користувач має власну схему даних, у якій є віртуальні таблиці trip, plan і spending. Для повноважного доступу створюються правила SELECT/INSERT/UPDATE/DELETE, які забезпечують, що користувач отримає доступ лише до своїх даних та за умови дотримання рівня доступу.

3. Використовується найменш трудомістка модель та зі збільшенням кількості користувачів у 100 разів управління з цією моделлю ускладниться найменше.

4. MAC модель вже використовується.
oleksandrblazhko commented 1 year ago

Зараз побачив, що у презентації, на 7-му слайді була помилка із визначення трудомісткості RBAC. Зараз це виправив. На передостанньому слайді вирази були вже правильними. Повторіть, будь ласка розрахунки для RBAC, бо висновки можуть змінитися. Дякую.

YuriZalukovskiy commented 1 year ago

Виправив.

oleksandrblazhko commented 1 year ago

Дякую. Оцінка = 7 балів