Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как лучше построить безопасность БД ? (Oracle)


Страницы:   1 2 3 4 5

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

Это описано у Тома Кайта в его книге "Оракл для профессионалов". Глава, в том переводе что есть у меня, называется "Тщательный контроль доступа". Собственно эта глава и была в журнале.

Если есть желание могу выслать статью.


Страницы:   1 2 3 4 5

Наверх

Титульная страница Поиск, карта сайта Написать письмо