|
изменение только одной записи
|
|||
---|---|---|---|
#18+
интересно как в Оракле, например, можно дать пользователю возможность работать на изменение только одной записи ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 17:53 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
триггеры не предлагать, таблиц много и, возможно, будет миграция ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 17:53 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
Victor Cookinинтересно как в Оракле, например, можно дать пользователю возможность работать на изменение только одной записиgrant update on dual ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 18:02 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
Victor Cookinкак в Оракле, например, можно дать пользователю возможность работать на изменение только одной записи "В соответствии с документацией на Row Level Security" не предлагать?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 18:12 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, предлагать ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 18:25 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
Код: plsql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 18:27 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Row Level Как на уровне строки узнать, что она не единственная? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 18:28 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
-2-Dimitry Sibiryakov Row Level Как на уровне строки узнать, что она не единственная? unique constraint не предлагать? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 18:34 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
andrey_anonymous Код: plsql 1. 2. 3. 4. 5.
Забыл дополнить: Код: plsql 1.
и грантуете пользователю dropme_v, она updatable ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 18:35 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovRow Level Security" не предлагать?.. RLS не сработает если UPDATE с WHERE clause. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2019, 18:46 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
SYDimitry SibiryakovRow Level Security" не предлагать?.. RLS не сработает если UPDATE с WHERE clause. SY.дать права на вьюху во вьюхе контекст ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 11:32 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
Victor Cookinтриггеры не предлагать Тем не менее, предложу триггер instead of. Генерация кода, в т.ч. миграционного, поддается автоматизации. Кроме того, процедурный подход. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 13:53 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
Victor Cookinтриггеры не предлагать, таблиц много и, возможно, будет миграциямиграция вкуда? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 14:13 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
andreymxдать права на вьюху во вьюхе контекст И как контекст разрешит изменение только одной строки? SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 14:32 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
SYandreymxдать права на вьюху во вьюхе контекст И как контекст разрешит изменение только одной строки? SY.create UserView as select * from businessTable where id = sys_context(www, myId) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 14:33 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
andreymxcreate UserView as select * from businessTable where id = sys_context(www, myId) Как я понимаю задачу, юзер формирует любой запрос типа: Код: plsql 1. 2. 3. 4.
и его необходимо "зарубить" если изменяется > 1 строки. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 14:49 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
andrey_anonymousandreymxcreate UserView as select * from businessTable where id = sys_context(www, myId) 21903932 імхо sys_context('USERENV','SESSION_USER') перебор. ограничение сработает для всех юсеров надо выборочно (пользователю) ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 14:55 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
SYКак я понимаю задачу,А как её понимает немногословный автор - неважно? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 15:04 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
ElicSYКак я понимаю задачу,А как её понимает немногословный автор - неважно?поддержу предыдущего оратора ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 16:25 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
andreymxмиграция вкуда? Обсуждается в MS SQL Server. Но он не потятянет, начальница говорит. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 17:44 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
Victor Cookinandreymxмиграция вкуда? Обсуждается в MS SQL Server. Но он не потятянет, начальница говорит. поэтому решили только по одной записи апдейтить? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 17:47 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
SY, Всё верно. Именно такая задача и стоит. Потому что через приложение юзер изменяет/добавляет.удаляет всегда только ОДНУ запись. А в RB ему дадена возможность исполнять любые скрипты в области своей видимости. И задача - не дать юзеру возможности делать UPRATE ... WHERE 1=1 Задача выросла из предыдущей (разрешить RB делать только селекты) - которая была решена путём создания спец. юзера RB_USER с возможностью только SELECT и создания для RB специального CONNECTION для этого RB_USER. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 17:54 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
DВА, Юзеры апдейтят по одной записи. Точка. Все BULK LOAD выполняются IT ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 17:56 |
|
изменение только одной записи
|
|||
---|---|---|---|
#18+
dmdmdm, Похоже, единственный выход. Жаль, таблиц много. Делать ENABLE/DISABLE триггеров перед BULK LOAD мы уже умеем ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2019, 18:01 |
|
изменение только одной записи
|
|||
---|---|---|---|
#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?all=1&fid=52&tid=1882420]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 271ms |
total: | 415ms |
0 / 0 |