oleksandrblazhko / ai-191-troiak

0 stars 0 forks source link

CW6 #19

Closed ktry1 closed 1 year ago

ktry1 commented 1 year ago

Варіант 11

Умова:

Припустимо, що вам необхідно забезпечити доступ до БД, враховуючи, що:

Запитання №1

1) розрахуйте трудомісткість операцій керування доступом для DAC, RBAC, MAC моделей, порівняйте значення для моделей та надайте висновки щодо доцільності переходу на керування з використанням іншої моделі (від DAC до RBAC, від RBAC до MAC);
Трудомісткість операцій:

Як ми бачимо, MAC є ефективнішим в 26.5 разів ніж DAC та в 31 раз ніж RBAC.

DAC => RBAC: немає сенсу переходити, кількість дій лише зростає. RBAC => MAC: перехід дає надзвичайно великий виграш в ефективності, має сенс це зробити.

2) у 2 рази збільшивши кількість користувачів, а кількість груп (ролей) зменшивши у 2 рази та повторно виконавши розрахунки трудомісткості операцій керування доступом для DAC, RBAC та MAC моделей, надайте висновки щодо доцільності переходу на керування з використанням іншої моделі (від DAC до RBAC, від RBAC до MAC) в нових умовах;
Трудомісткість операцій:

Як ми бачимо з результатів, MAC все ще значно домінує над іншими підходами, але RBAC став у два рази ефективніший за DAC.

DAC => RBAC: є сенс переходити, дає виграш більше ніж в 2 рази. RBAC => MAC: перехід дає надзвичайно великий виграш в ефективності, має сенс це зробити.

Запитання №2

Припустимо, що програмне забезпечення, яке ви розглядали в лабораторній роботі No1, містить БД або множину файлів електронних документів, до яких користувачі повинні отримувати доступ.

1) наведіть приклади:

а) Моє програмне забезпечення буде мати таблицю з досягненнями користувачів, яка буде містити 18 колонок: id користувача та 17 колонок, кожна з яких має тип bool та показує чи відкрите це досягнення. Ця таблиця буде пов'язана через id користувача з таблицею даних про статистику користувачів. Таблиця статистики буде містити наступні колонки user_id bool, total_money_donated float, achievements_unlocked integer, total_wins integer, total_participations integer, avatar_URI varchar.

б) Користувачі, яку будуть працювати з моїм ПЗ - люди, яким подобається приймати участь в розіграшах грошей. Привабливими характеристиками є можливість перевірити як було обрано переможця, переможець відомий з початку раунда, для участі в наступному розіграші не потрібно вносити грошей.

в) Буде всього 2 ролі - користувач, якому будуть доступні лише операції SELECT даних за його user_id та власник, який має доступ до усіх даних та операцій в БД.

2) вкажіть модель керування доступом, за якою працює ваше програмне забезпечення та прокоментуйте, як програмно ви забезпечили таке керування;

На жаль, моє ПЗ не зовсім не використовує бази даних для збереження даних через його особливу структуру - використвуються запити до блокчейну. Якби довелося переводити ПЗ до використання баз даних я би використовував модель керування доступом MAC через її надзвичайно високу ефективність та сервіс Amazon RDS.

3) надайте рекомендації щодо зміни моделі керування доступом у вашому програмному забезпеченні, якщо кількість користувачів та можливих груп (ролей) користувачів зросте в 100 разів;

Якби моя модель використовувала бази даних, я би звичайно використовував MAC через незалежність цієї моделі керування від кількості користувачів. Міграція бази даних може бути дуже складною задачею, тому слід обирати модель одразу, а не перероблювати усе вже після релізу.

oleksandrblazhko commented 1 year ago

Оцінка = 5 балів