|
|
|
Как организовать права доступа в оракловской базе?
|
|||
|---|---|---|---|
|
#18+
Пишу систему, которая имеет кучу объектов разных видов, хранящиеся в таблицах в основном в отношениях один-ко-многим, операции с ними через API пакетов PL\SQL. Пока что прототип не имеет разграничения прав. На эту тему здесь довольно много обсуждений было, но по-моему, не обсуждалось, как именно сделать следующую вещь. Допустим, на каждую таблицу есть пакет PLSQL с функицями API Типа create(...) returns id, delete(id), change(id, ...), has_exist(id...), find_first(...), итд. Есть несколько пакетов, которые раюотают с ними, как с совокупность обектов более высокого уровня, вызывая описанные функции из пакетов. Как сделать уже существующей модели проверку на то, может ли конкретный клиент сделать какую-то операцию? ДОпустим, у нас есть таблица - ACL список, в которой определяется права чтения, записи, изменения, ..., на множества объектов. Где и как лучше сделать проверку на эти права перед выполнением функции из пакета? На стороне клиента? В начале каждой функции в пакете? Если это делать через представления, то неясно, как для них писать подобное API (ясно только , что нужно будет активно EXECUTE IMMEDIATE юзать), как использовать в запросах поиска без ухудшения производительности. И что-то еще есть, но я забыл. Все таблицы, пакеты итд. хранятся в одной схеме. В общем, я пока пытаюсь велосипед изобрести. Задаю этот вопрос здесь, а не в оракловом форуме, потому что он общий и для mssql с небольшими вариациями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2007, 14:30 |
|
||
|
Как организовать права доступа в оракловской базе?
|
|||
|---|---|---|---|
|
#18+
makondo В общем, я пока пытаюсь велосипед изобрести. Задаю этот вопрос здесь, а не в оракловом форуме, потому что он общий и для mssql с небольшими вариациями. Сначала методологию раздачи прав выбрать нужно, а уж потом думать куда это встраивать. Вы хотите раздавать права на типы объектов, объекты, операции? Какая степень детализации нужна? Нужна ил зависимость одних прав от других? И т.п. Если целиком методику сформулировать не можете - приведите конкретные примеры что хотелось бы уметь разрешать/запрещать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2007, 15:06 |
|
||
|
Как организовать права доступа в оракловской базе?
|
|||
|---|---|---|---|
|
#18+
ну если на каждую таблицу есть набор хп (не замучались делать?),то вначале каждой процедуры пишете кусок а-ля if CheckRights()<>ok then exit (и вариации в лог о том,что кто-то делает то,что ему нелязя (хотя конечно лучше из интерфейса это убрать,чтобы не заставлять пользователя чувствовать себя дураком));.чтобы это писалось всегда делаете в SQLNavigator template хранимой процедуры и этот кусок кода появляется у вас всегда.с правами чтения -либо view либо fgac (ну а вставка в таблицу - простой грант на инсерт,делет,апдат). p.s.(у меня в структуре данных для обеспечения контроля доступа порядка 60-ти таблиц - мутное все это дело). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2007, 16:38 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34469975&tid=1544601]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
| others: | 247ms |
| total: | 368ms |

| 0 / 0 |
