|
изменение только одной записи
|
|||
---|---|---|---|
#18+
Victor CookinИ задача - не дать юзеру возможности делать UPRATE ... WHERE 1=1 А если внимательно прочитать про RLS, то можно найти способ добавить к этому (и любому другому) запросу условие "and ROWNUM = 1". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 18:13 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov можно найти способ добавить к этому (и любому другому) запросу условие "and ROWNUM = 1" Я тоже уверен, что можно. Как раз об этом и спросил. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 18:31 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
Victor CookinSY, Всё верно. Именно такая задача и стоит. Потому что через приложение юзер изменяет/добавляет.удаляет всегда только ОДНУ запись. А в RB ему дадена возможность исполнять любые скрипты в области своей видимости. И задача - не дать юзеру возможности делать UPRATE ... WHERE 1=1 Можно сделать защиту от дурака - но только от неизобретательного ( один из законов Мерфи). Что мешает юзеру запустить много апдейтов в каждом из которых он апдейтит одну строку? Он даже может их автоматически генерить. Это все похоже на имитацию безопасности, вместо реальной безопасности. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 18:31 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
Если защита не от дурага, а от ошибок компьютера - вполне работает У нас так баг в программе обнаружили, что иногда процедура удаления, которая предполагалась, что должна работать только по одной записи, запускалась по всей базе. Нашли неизвестную нам "фичу" Forms'ов из-за которой пользователь мог запустить пункт контектного меню не на том блоке ))). Вместо удаления одной записи в detail таблице, вычишалась вся master таблица ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 18:38 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
ValergradМожно сделать защиту от дурака - но только от неизобретательного ( один из законов Мерфи). Что мешает юзеру запустить много апдейтов в каждом из которых он апдейтит одну строку? Юзер изобретателен, но ленив и незлонамерен. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 18:48 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov А если внимательно прочитать про RLS, то можно найти способ добавить к этому (и любому другому) запросу условие "and ROWNUM = 1". А если внимательно вникнуть как работает RLS то: Код: 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.
А все потому что в отличие от SELECT где RLS просто бы добавил AND ROWNUM = 1 к WHERE в случае UPDATE/SELETE/INSERT это не так. RLS выдаст: Код: plsql 1. 2. 3. 4. 5. 6.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 19:14 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
Сделать схему, дать на неё права только на селект и пускать туда юзверя для произвольных говноселктов? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 19:34 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
andreymxСделать схему, дать на неё права только на селект и пускать туда юзверя для произвольных говноселктов? Уже сделал. Но много интересного по ходу узнал. Например, про RLS ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 19:51 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
SY А все потому SY. С меня ещё одна бутылка ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 19:52 |
|
|
start [/forum/topic.php?fid=52&gotonew=1&tid=1882420]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
8ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 140ms |
0 / 0 |