Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 изменение только одной записи  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 584
интересно как в Оракле, например, можно дать пользователю возможность работать на изменение только одной записи
6 июн 19, 17:53    [21903872]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 584
триггеры не предлагать, таблиц много и, возможно, будет миграция
6 июн 19, 17:53    [21903874]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
-2-
Member

Откуда:
Сообщений: 14650
Victor Cookin
интересно как в Оракле, например, можно дать пользователю возможность работать на изменение только одной записи
grant update on dual
6 июн 19, 18:02    [21903888]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47545

Victor Cookin
как в Оракле, например, можно дать пользователю возможность работать на изменение только
одной записи

"В соответствии с документацией на Row Level Security" не предлагать?..

Posted via ActualForum NNTP Server 1.5

6 июн 19, 18:12    [21903906]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 584
Dimitry Sibiryakov,

предлагать
6 июн 19, 18:25    [21903920]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 17347
create table dropme_t(id number primary key, val varchar2(100)
    , usr varchar2(100) default sys_context('USERENV','SESSION_USER') check (usr=sys_context('USERENV','SESSION_USER'))
      unique
    )
;
6 июн 19, 18:27    [21903922]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
-2-
Member

Откуда:
Сообщений: 14650
Dimitry Sibiryakov
Row Level
Как на уровне строки узнать, что она не единственная?
6 июн 19, 18:28    [21903923]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 17347
-2-
Dimitry Sibiryakov
Row Level
Как на уровне строки узнать, что она не единственная?

unique constraint не предлагать? :)
6 июн 19, 18:34    [21903930]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 17347
andrey_anonymous
create table dropme_t(id number primary key, val varchar2(100)
    , usr varchar2(100) default sys_context('USERENV','SESSION_USER') check (usr=sys_context('USERENV','SESSION_USER'))
      unique
    )
;


Забыл дополнить:
create view dropme_v as select id, val from dropme_t where usr=sys_context('USERENV','SESSION_USER') with check option;


и грантуете пользователю dropme_v, она updatable
6 июн 19, 18:35    [21903932]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 9468
Dimitry Sibiryakov
Row Level Security" не предлагать?..


RLS не сработает если UPDATE с WHERE clause.

SY.
6 июн 19, 18:46    [21903941]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 51527
SY
Dimitry Sibiryakov
Row Level Security" не предлагать?..


RLS не сработает если UPDATE с WHERE clause.

SY.
дать права на вьюху
во вьюхе контекст
7 июн 19, 11:32    [21904339]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
dmdmdm
Member

Откуда: Нижний Новгород
Сообщений: 1210
Victor Cookin
триггеры не предлагать


Тем не менее, предложу триггер instead of. Генерация кода, в т.ч. миграционного, поддается автоматизации.

Кроме того, процедурный подход.
7 июн 19, 13:53    [21904496]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 51527
Victor Cookin
триггеры не предлагать, таблиц много и, возможно, будет миграция
миграция вкуда?
7 июн 19, 14:13    [21904531]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 9468
andreymx
дать права на вьюху
во вьюхе контекст


И как контекст разрешит изменение только одной строки?

SY.
7 июн 19, 14:32    [21904559]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 51527
SY
andreymx
дать права на вьюху
во вьюхе контекст


И как контекст разрешит изменение только одной строки?

SY.
create UserView as
select * from businessTable
where id = sys_context(www, myId)
7 июн 19, 14:33    [21904562]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 17347
andreymx
create UserView as
select * from businessTable
where id = sys_context(www, myId)


21903932
7 июн 19, 14:46    [21904579]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 9468
andreymx
create UserView as
select * from businessTable
where id = sys_context(www, myId)


Как я понимаю задачу, юзер формирует любой запрос типа:

UPDATE some_table
   SET some_column = some_value
   WHERE some_conditions
/


и его необходимо "зарубить" если изменяется > 1 строки.

SY.
7 июн 19, 14:49    [21904582]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 1840
andrey_anonymous
andreymx
create UserView as
select * from businessTable
where id = sys_context(www, myId)


21903932


імхо
sys_context('USERENV','SESSION_USER') перебор. ограничение сработает для всех юсеров
надо выборочно (пользователю)


.....
stax
7 июн 19, 14:55    [21904586]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
Elic
Member

Откуда: 1984. Выбраковка финно-угром продолжается. КЯЗ
Сообщений: 28975
SY
Как я понимаю задачу,
А как её понимает немногословный автор - неважно?
7 июн 19, 15:04    [21904603]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 51527
Elic
SY
Как я понимаю задачу,
А как её понимает немногословный автор - неважно?
поддержу предыдущего оратора
7 июн 19, 16:25    [21904703]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 584
andreymx
миграция вкуда?

Обсуждается в MS SQL Server. Но он не потятянет, начальница говорит.
7 июн 19, 17:44    [21904788]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
DВА
Member

Откуда:
Сообщений: 5374
Victor Cookin
andreymx
миграция вкуда?

Обсуждается в MS SQL Server. Но он не потятянет, начальница говорит.

поэтому решили только по одной записи апдейтить?
7 июн 19, 17:47    [21904792]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 584
SY,

Всё верно. Именно такая задача и стоит. Потому что через приложение юзер изменяет/добавляет.удаляет всегда только ОДНУ запись. А в RB ему дадена возможность исполнять любые скрипты в области своей видимости. И задача - не дать юзеру возможности делать UPRATE ... WHERE 1=1

Задача выросла из предыдущей (разрешить RB делать только селекты) - которая была решена путём создания спец. юзера RB_USER с возможностью только SELECT и создания для RB специального CONNECTION для этого RB_USER.
7 июн 19, 17:54    [21904804]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 584
DВА,

Юзеры апдейтят по одной записи. Точка. Все BULK LOAD выполняются IT
7 июн 19, 17:56    [21904806]     Ответить | Цитировать Сообщить модератору
 Re: изменение только одной записи  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 584
dmdmdm,

Похоже, единственный выход. Жаль, таблиц много.
Делать ENABLE/DISABLE триггеров перед BULK LOAD мы уже умеем
7 июн 19, 18:01    [21904810]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить