|
игнорируются права доступа на уровне таблицы
|
|||
---|---|---|---|
#18+
Добрый день! Есть таблица в БД, которую могуть изменять все пользователи, за исключение одного, которому должно быть разрешено изменять только один столбец в этой таблице. Мои действия: 1. каждому пользователю присвоены права insert, update, select, delete на эту таблицу, кроме одного пользователя 2. удалены права на все действия с таблицей у public revoke all on name_table from public 3. одному пользователю даны права на select и update столбца таблицы grant select, update(name_column) on name_table to user_name В итоге получилось: - При выполнении команды update любых столбцов таблицы под этим пользователем, выдает ошибку "No UPDATE permission". Здесь всё верно. НО! - При execute procedure, в которой выполняется эта же команда update, нет реакции на нарушение прав и происходит изменение любого столбца в таблице под пользователем, которому ограничили права. Почему?? Нигде не могу найти ответ. Помогите пожалуйста разобраться. P.S. IDS Version 10.00.FC5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 12:47 |
|
игнорируются права доступа на уровне таблицы
|
|||
---|---|---|---|
#18+
AORA, посмотрите в dbschema команду grant execute procedure и увидите с какими правами она запускается. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 12:59 |
|
игнорируются права доступа на уровне таблицы
|
|||
---|---|---|---|
#18+
Ikir, Посмотрела, to 'public'. Вы наверное имели ввиду, что нужно убрать разрешение на выполнение процедуры для пользователя с ограниченными правами? Но мне нужно, чтобы он тоже мог выполнять процедуру, как и все остальные пользователи, но с ошибкой, которую я бы захватила с помощью on exception. Получается права на выполнение процедуры перекрывают права пользователя на действия с таблицей? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 13:26 |
|
игнорируются права доступа на уровне таблицы
|
|||
---|---|---|---|
#18+
AORAДобрый день! процедура общается к объектам с правами владельца процедуры. Т.е. если владелец таблицы U1 и владелец процедуры U1, процедура может выполнять абсолютно любые действия с таблицей. Это стандарт ANSI. Это сделано для того чтобы запретить пользователям выполнять модификацию таблиц напрямую, и разрешить только через процедуру. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 15:07 |
|
игнорируются права доступа на уровне таблицы
|
|||
---|---|---|---|
#18+
Спасибо за ответы! Пересоздала процедуру под пользователем с ограниченными правами. Теперь под этим пользователем процедура выполняется с реакцией на ограничения в правах, а под остальными пользователями с их правами доступа к таблице. Получила нужный результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 15:33 |
|
|
start [/forum/topic.php?desktop=1&fid=44&tid=1607114]: |
0ms |
get settings: |
14ms |
get forum list: |
6ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
42ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
136ms |
get tp. blocked users: |
1ms |
others: | 328ms |
total: | 536ms |
0 / 0 |