|
Логика прав на функции внутри view
|
|||
---|---|---|---|
#18+
Код: plsql 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.
Хотим, чтобы пользователь srv_dc мог обращаться к test_view.view_v, но не мог вызывать test_func.func() напрямую Какая логика стоит за необходимостью назначать права на функции, вызываемые из view? Почему прав владельца недостаточно? Где про эту логику прочитать? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2020, 15:15 |
|
Логика прав на функции внутри view
|
|||
---|---|---|---|
#18+
Dany305, С правами все запутано. Но хорошо описано в книге PostgreSQL 11 (Ганс-Юрген Шёнинг = Глава 8) и в книге PostgreSQL 10 (Салахалдин Джуба, Андрей Волков = Глава 11) Это как рекурсивный запрос в 4 этажа. В общем очень запутанно. Но есть выход - создаются разные группы/права и вкладываются как матрешка. то есть одной группе можно назначить кучу прав в результате он может делать то что и требовалось. Я с наскоку в общем то понял, но вот там это так закручено. В общем, читайте 2-3 дня и вопрос решите. Явно быстрее чем на форуме. В общем, в инструкции по постгрес все очень слабо расписано. В книгах выше все разжевано довольно понятно и доступно. Эта тема очень специфична. Обычно доступ делается через сайт, либо на локальной машине или через внешнюю оболочку программы (Python). . ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 09:24 |
|
Логика прав на функции внутри view
|
|||
---|---|---|---|
#18+
Dany305, почитать естественно в документации https://www.postgresql.org/docs/9.4/rules-privileges.html "Relations that are used due to rules get checked against the privileges of the rule owner, not the user invoking the rule." - но это касается только relations но не функций, у них своя проверка на права. есть некоторое подозрение что "Хотим, чтобы пользователь srv_dc мог обращаться к test_view.view_v, но не мог вызывать test_func.func() напрямую" можно сделать только так как вы сделали... ps: а от кого должна запускаться функция test_func.func при вызове ее пользователем srv_dc через view test_view.view_v ? от srv_dc ? от postgres? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 10:24 |
|
Логика прав на функции внутри view
|
|||
---|---|---|---|
#18+
Maxim Boguk Dany305, почитать естественно в документации https://www.postgresql.org/docs/9.4/rules-privileges.html "Relations that are used due to rules get checked against the privileges of the rule owner, not the user invoking the rule." - но это касается только relations но не функций, у них своя проверка на права. ну хорошо, про relations что-то есть, хотя и маловато, а про функции где? есть некоторое подозрение что "Хотим, чтобы пользователь srv_dc мог обращаться к test_view.view_v, но не мог вызывать test_func.func() напрямую" можно сделать только так как вы сделали... да, кажется только так, но выглядит странновато - execute есть, а usage нет ps: а от кого должна запускаться функция test_func.func при вызове ее пользователем srv_dc через view test_view.view_v ? от srv_dc ? от postgres? я не написал, но предполагается, что функция test_func.func security definer, т.е. от ее владельца - postgres ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 18:26 |
|
|
start [/forum/topic.php?fid=53&gotonew=1&tid=1994588]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
42ms |
get topic data: |
12ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 281ms |
total: | 428ms |
0 / 0 |