Oracle
 sql >> база данни >  >> RDS >> Oracle

Най-добра практика за проектиране на база данни с разрешения за потребителски роли?

Както krokodilko написа в коментара си, зависи от нивото на гъвкавост, от което се нуждаете.
Внедрих разрешения, базирани на роли, за един от моите клиенти, както следва:

  1. Потребител (потребителско име (PK), потребителско име (уникално), парола (осолени и хеширани! ), име, фамилия, телефон и т.н')
  2. Роля (идентификатор на роля (PK), име на роля (уникално), описание на ролята)
  3. Разрешение (идентификатор на разрешение (PK), име на разрешение (уникално)) – разделите/екраните/действията са тук
  4. Потребител към роля (идентификатор на потребителя, идентификатор на роля) – PK е комбинирана от двете колони
  5. Роля към разрешение (идентификационен номер на роля, идентификатор на разрешение) – PK е комбинация от двете колони

Но моето изискване беше да бъда възможно най-гъвкав, а това е система, която все още се разраства (6 години и расте).

Предполагам, че много приложения могат да имат ролята на потребителя като връзка един към много, вместо много към много, както е в моя случай, но не бих приложил твърдо кодиране на разрешения или разрешения на роля към никое приложение.

Допълнително обяснение:Дизайн на база данни за сигурност, базиран на роли на Какво, по дяволите #, знам?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Незабавното изпълнение е неуспешно дори с разрешение за таблица CREATE

  2. Как да използвам Array/Table Parameter към Oracle (ODP.NET 10g) чрез ADO.NET/C#?

  3. как да прочета локален файл в SQL Developer?

  4. Възможно ли е блокиране при актуализиране и изтриване на различни редове в таблица?

  5. Доктрина 2:каскадно продължаване Oracle IDENTITY връща 0 като последно вмъкнат идентификатор