![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как лучше построить безопасность БД ? (Oracle)
ANB © (2005-05-25 16:05:00)Знаю несколько способов :
- Через гранты раздаем права. Тонкая настройка (выборка только части записей или сложные условия) - на клиенте. Хуже еще не видел, легко ломается, хотя можно усложнить взлом, например, шифруя пароль.
- Доступ только на вьюхи, изменения через хранимки - жутко неудобно каждый раз переправлять эти хранимки. И блокирутся возможность выполнять обычные DML.
- Доступ только на вьюхи, изменения через instead of триггера + хранимки для удобства - так еще не видел, соответственно прокомментировать не могу.
Все комментарии, ессно, имхо.
Кто еще с какими схемами защиты сталкивался и какую может посоветовать ?
Sergey13 (2005-05-26 16:38:00) [1]2[86] DenK_vrtz © (26.05.05 16:33)
Привет. Ушло.
DenK_vrtz (2005-05-26 16:33:00) [2]>Sergey13 ©
Привет, Сергей, если не трудно мне статейку тоже вышли. У тебя мой адрес был или адрес в анкете(был вроде :) )
Спасибо заранее.
Если кому интересно, работаю по третьему варианту - проблем не испытываю.
Sergey13 (2005-05-26 16:27:00) [3]2[84] ANB © (26.05.05 16:10)
>Но, читай первые страницы
Ты не поверишь - я читал. Попробовать не смог (посему и сомнения остались), но читал. 8-)
ANB (2005-05-26 16:10:00) [4]
> Сам и пишешь такие разовые запросы, а в ХП их зачем пихать?
- частенько в триггеры запихивают доп. логику. Например при апдейте в одной таблице может что то менятся в другой. Если эту логику я перекладываю в ХП, то для массового апдейта мне придется вызывать ХП в цикле. Или повторять код из ХП, что, имхо, некошерно. Плюс писать апдейт может и другой прог, который эту логику не очень знает.
> Sergey13 © (26.05.05 15:41) [83]
тоже верно. Полностью ручками написанный и оптимизнутый запрос, имхо, мне кажется надежнее, чем автоматическая каша.
Но, читай первые страницы - там становится понятно, почему защиту лучше делать на сервере.
Sergey13 (2005-05-26 15:41:00) [5]2 [81] ANB © (26.05.05 15:31)
> Это даже удобнее, чем вьюхи
Вот это у меня и вызывает сомнения. Потому что "САМИ при любом обращении к таблице". Иногда надо иметь разные доступы к одной таблице. В одном случае только к "своим" (редактирование) в другом ко всем (аналитика какая нить), причем в одной сессии. Вот мне и показалось, что запаришься эти политики делать. А если в заросе таблиц с десяток, и на половину (или на все) стоят подобные ограничения. Вот и думай потом - почему запрос возвращает черти что или почему его производительность х.з. какая.
ЗЫ: В любом случае у меня стоял Standart Edition и мне это не пришлось попробовать. 8-)
evvcom (2005-05-26 15:40:00) [6]
> Ну например, накопали косяк в логике, а юзер уже месяц на
> поломанной проге сидел и хочет это все поправить. Обычно
> пишем update set = правильное значение where поломанные
> записи
Ну так это же не юзер, наверное, делает? Сам и пишешь такие разовые запросы, а в ХП их зачем пихать?
> для сложных запросов из большого количества немаленьких
> таблиц сравнение делали ?
все зависит от написанного селекта, а где он будет во вьюхе или хп, думаю, разницы совсем никакой. Хотя, конечно, иной раз оптимизатор такие финты выкидывает! А к готовой вьюхе/хп и из хранимки можно привязаться, но это уже не к теме.
Делал временные вьюхи, чтобы данные в Excel выдать, пока аналогичного модуля еще не написал, а нужно было срочно, потом модуль написал, а запрос перекинул в хранимку. По скорости разницы не заметил, но в удобстве использования вьюха далека от хранимки (наверное, лишь за исключением мутаций).
> Ушло.
Бегло пробежался по статье. Реализовано через стандартные пакеты dbms. Да, наверняка, это удобнее, чем писать такой контроль руками, но все равно тяжеловато. А в 10-ке такую весчь встроили уже в ядро. Но сам я не юзал, у меня 9.
ANB (2005-05-26 15:31:00) [7]Значит, для 9 по любому. Седня почитаю, я распечатал.
Листнул идею, - похоже на вариант evvcom ©, только ХП вызываются САМИ при любом обращении к таблице. Это даже удобнее, чем вьюхи.
Sergey13 (2005-05-26 15:17:00) [8]Заметил в книге уточнение. Это будет работать с 8.1.5 ЕЕ и выше.
Sergey13 (2005-05-26 15:15:00) [9]Ушло.
ANB (2005-05-26 15:12:00) [10]Млин, Belousov, я со старой работой перепутал. Плз, еще разок.
Sergey13 (2005-05-26 15:04:00) [11]2[71] ANB © (26.05.05 14:27)
>И мне ABelousov[sobaka]smartcard.ru
Вернулось с руганью. Может адрес не тот или у тебя с майл.ру не берет?
ANB (2005-05-26 15:03:00) [12]
> Зачем? Какая разница: курсор он и в африке курсор!
- для сложных запросов из большого количества немаленьких таблиц сравнение делали ? Просто на вьюхах я уже влетал. Правда по глупости, надо было новую вьюху написать, а я готовую привязал.
ANB (2005-05-26 15:01:00) [13]Ну например, накопали косяк в логике, а юзер уже месяц на поломанной проге сидел и хочет это все поправить. Обычно пишем update set = правильное значение where поломанные записи.
evvcom (2005-05-26 14:59:00) [14]
> А не тормозит ?
Зачем? Какая разница: курсор он и в африке курсор!
> Как легко сопровождается ?
Открыл в редакторе так же как и вьюху и прочее, ну и сопровождай. Или ты о чем?
> Как пишешь массовые апдейты/инсерты ?
А я их не пишу. Юзер массово записи не правит, на каждую запись по ApplyUpdates вызов ХП. Но если надо, то проблем-то никаких. А как ты их массово хочешь менять, пример?
Sergey13 (2005-05-26 14:32:00) [15]2[70] evvcom © (26.05.05 14:24)
2[71] ANB © (26.05.05 14:27)
Ушло.
ANB (2005-05-26 14:29:00) [16]
> evvcom © (26.05.05 14:21) [69]
Вот и нашелся пятый способ - процедуры, возвращающие НД.
А не тормозит ? Как легко сопровождается ? Как пишешь массовые апдейты/инсерты ?
ANB (2005-05-26 14:27:00) [17]И мне ABelousov[sobaka]smartcard.ru
evvcom (2005-05-26 14:24:00) [18]
> Если есть желание могу выслать статью
Скинь мне на мыльце, если не в лом.
evvcom (2005-05-26 14:21:00) [19]
> вьюхи ты все равно юзаешь
не-а, не юзаю. Чтение MyProc#List, запись MyProc#Save
> Это детальный контроль доступа.
>
> Нет. Это появилось с 8и.
Тогда что это? Я подумал, что речь идет о разграничении полномочий на уровне строк, а это, насколько я знаю, только с 10-ки.
Sergey13 (2005-05-26 14:20:00) [20]2[67] ANB © (26.05.05 14:09)
Я про это читал в ОраклМагазин давненько правда. Номера не помню.
http://www.oracle.com/global/ru/oramag/index.html
Это описано у Тома Кайта в его книге "Оракл для профессионалов". Глава, в том переводе что есть у меня, называется "Тщательный контроль доступа". Собственно эта глава и была в журнале.
Если есть желание могу выслать статью.