Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / о безопасности давать пользователям править SQL / 13 сообщений из 13, страница 1 из 1
05.06.2019, 22:23
    #39823112
Victor Cookin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о безопасности давать пользователям править SQL
В приложении есть генератор отчётов(Report Builder для Delphi), в нём пользователи могут менять SQL.
то, что там пропускаются штуки типа "drop table" - это полбеды. В конце концов можно не давать пользователю прав на такое. Но нельзя не давать прав на update. А с ним можно наделать делов не меньше:
Код: sql
1.
Update price set old_price = 0


Как бы запретить пользователю в определённых режимах делать что-то кроме SELECT, в рамках его привилегий?

Есть конечно вариант прикрутить какой-нибудь "проверяльщик SQL строки на безопасность". Если таковые есть - тоже вариант. Подскажите. Понятно, что DROP, CREATE, UPDATE и DELETE я сам могу выпилить, а какие ещё засады могут встретиться?
...
Рейтинг: 0 / 0
05.06.2019, 22:30
    #39823115
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о безопасности давать пользователям править SQL
Victor Cookin,

application roles
...
Рейтинг: 0 / 0
05.06.2019, 22:34
    #39823116
Victor Cookin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о безопасности давать пользователям править SQL
-2-Victor Cookin,

application roles

там одно. Делить нельзя (постановка новой версии в production - пара недель тестирования, постановка НОВОГО приложения - несколько лет...).
...
Рейтинг: 0 / 0
05.06.2019, 22:54
    #39823121
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о безопасности давать пользователям править SQL
Простой вариант:
Код: plsql
1.
2.
create user ReportBuilder identified by ReportBuilder account unlock;
grant create session, select any table, alter session to ReportBuilder;


Репортер подключать отдельным коннектом под новой схемой.
Далее, чтобы не переписывать отчеты, можно либо при подключении
Код: plsql
1.
alter session set current_schema=<схема с таблицами>; -- можно в after logon триггере



либо создать синонимы к нужным таблицам в схеме ReportBuilder
...
Рейтинг: 0 / 0
05.06.2019, 23:01
    #39823124
Victor Cookin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о безопасности давать пользователям править SQL
andrey_anonymous,

кажется вариант. Попробую.
Но проще было бы a la
Код: plsql
1.
ALTER SESSION set READ_ONLY = true
...
Рейтинг: 0 / 0
05.06.2019, 23:04
    #39823126
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о безопасности давать пользователям править SQL
Есть
Код: plsql
1.
set transaction readonly

, но это до ближайшего TCL.
Как следствие - truncate пройдет :)
...
Рейтинг: 0 / 0
05.06.2019, 23:05
    #39823130
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о безопасности давать пользователям править SQL
andrey_anonymousЕсть
Код: plsql
1.
set transaction read only

, но это до ближайшего TCL.
Как следствие - truncate пройдет :)
...
Рейтинг: 0 / 0
05.06.2019, 23:11
    #39823132
Victor Cookin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о безопасности давать пользователям править SQL
andrey_anonymousдо ближайшего TCL.


то есть после любого коммита это свойство пропадёт? или что?
...
Рейтинг: 0 / 0
05.06.2019, 23:26
    #39823137
кит северных морей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о безопасности давать пользователям править SQL
Victor Cookin,

любой DDL делает commit автоматически, дважды. перед командой и сразу после.
...
Рейтинг: 0 / 0
05.06.2019, 23:55
    #39823145
Victor Cookin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о безопасности давать пользователям править SQL
кит северных морей,
DDL как раз пользователям не разрешены. Конечно, если сам Report builder не делает коммитов, то это решило бы проблему. Но сдаётся мне, что делает.
...
Рейтинг: 0 / 0
06.06.2019, 00:10
    #39823150
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о безопасности давать пользователям править SQL
Victor Cookin там пропускаются штуки типа "drop table"
Victor CookinDDL как раз пользователям не разрешены.
"Все врут" (с)
...
Рейтинг: 0 / 0
06.06.2019, 00:12
    #39823151
Victor Cookin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о безопасности давать пользователям править SQL
andrey_anonymous"Все врут" (с)

Кто? Я сам DROP TABLE сделал из RB
...
Рейтинг: 0 / 0
06.06.2019, 00:14
    #39823153
Victor Cookin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о безопасности давать пользователям править SQL
andrey_anonymous,
А, понял. Я - НЕ пользователь. Захожу как владелец схемы
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / о безопасности давать пользователям править SQL / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]