Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
29.11.2017, 14:40
|
|||
|---|---|---|---|
Как организовать права доступа к сущностям в БД? |
|||
|
#18+
Добрый день! Я делаю информационную систему, в ней различные объекты (документы, ТМЦ и др.). И к отдельным сущностям необходимо разграничивать доступ. Т.е. что user1 имеет право доступа к документу, а user2 не имеет. У меня в данный момент это реализовано таким образом: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. и соответственно в запросах получения списка документов используются конструкции вида Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Собственно вопрос по этой схеме: Жизнеспособна ли такая схема и насколько по производительности это приемлемое решение? Объёмы: Пользователей 100-200 Групп: 10-20 Документов: пусть будет 10 млн. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.11.2017, 21:29
|
|||
|---|---|---|---|
Как организовать права доступа к сущностям в БД? |
|||
|
#18+
Да хреновая схема. Это у тебя на каждый чих будет кэшиться на диск подзапрос на лям DocID-ов. Вводи таблицы прав в запрос как полноправные источники данных - если всё же охота вот так, через то самое место. А по уму - пиши функцию, которая примет юзера и док, и вернёт, есть права или нет. И её в секцию отбора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.11.2017, 23:35
|
|||
|---|---|---|---|
Как организовать права доступа к сущностям в БД? |
|||
|
#18+
Akina , спасибо за пояснения. А вводить в запрос как полноценные источники данных, это стало быть JOIN'ить просто с доками? А писать функцию, если в этой функции будет выполняться тот же самый вариант запроса (который в моём посте - подзапрос) это будет менее прожорливым вариантом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.11.2017, 12:08
|
|||
|---|---|---|---|
Как организовать права доступа к сущностям в БД? |
|||
|
#18+
Не этот же самый, по конкретному DocID. Да и запрашиваться будет просто количество (а то и вообще факт наличия), а не сами ИДы. При наличии правильного индекса - взлетит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2017, 13:12
|
|||
|---|---|---|---|
Как организовать права доступа к сущностям в БД? |
|||
|
#18+
Akina , т.е. это будет что-то типа: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.12.2017, 21:36
|
|||
|---|---|---|---|
Как организовать права доступа к сущностям в БД? |
|||
|
#18+
Да проще - SELECT COUNT, и его сразу возвращать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.12.2017, 10:24
|
|||
|---|---|---|---|
Как организовать права доступа к сущностям в БД? |
|||
|
#18+
Akina , так и сделал в итоге. Через функцию, всё работает, спасибо! А вообще в серьёзных приложениях (на несерьёзной СУБД типа MySQL) как реализуется такая задача? Тоже в виде таблиц с списком пользователей/групп у объекта и проверкой функцией на вхождение текущего пользователя в эти списки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&tablet=1&tid=1830212]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 150ms |

| 0 / 0 |
