Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
разграничение прав доступа
|
|||
|---|---|---|---|
|
#18+
посоветуйте плз как лучше сделать: руками их разруливать - в своих таблицах и функциях - или пользовать постгресовские? я раньше сам это делал - т.к. это проще. да и требования были мягче чем сейчас. а сейчас проект оч амбициозный - и будут там повышенные требования к секурити и т.п. как это по науке делается - я не оч в курсе. не охота времени много на учёбу убивать - не зная надо ли оно мне заранее. оч общее представление имею - но не представляю как увязать например права на таблицу/функцию с бизнеслогикой проекта. ну и сам то я с этим разберусь - посоветуйте токо надо ли оно, можно ли так сделать что-бы всё красиво было и чётко :). тоисть стоит ли вообще таким способом это решать - или нет? раньше я делал что клиентское приложение под одним постгресовским юзером работало - и там свои пользователи были в таблице своей. ну и доступы соответственно свои. ну и права доступа то там не к объектам бд - а к функциям программы - т.е. на прямую на бизнес-логику ориентация была. а можно ли сразу как-то это средствами посгреса делать - без этого рукоделия лепного? Тоисть так, чтобы одним способом и доступ к объектам бд разрулить - и с бизнес-логикой увязать. или токо можно средствами постгреса доступ разруливать к объектам бд - а к функциям программы руками? вобщем посоветуйте пожалуйста как это по науке делается. или ткните пальцем в книгу/статью/мануал. спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2007, 12:26 |
|
||
|
разграничение прав доступа
|
|||
|---|---|---|---|
|
#18+
up :) ну мне в принципе и не срочно - но токо это . . . нетерпится. типа это - жаждой знаний придавило - и не отпускает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2007, 21:37 |
|
||
|
разграничение прав доступа
|
|||
|---|---|---|---|
|
#18+
ИМХО: считаю что нужно пользоваться встроенными правами доступа, в своем проекте так и буду делать. Но! заведу отдельную таблицу с дополнительными правами (которых нет в стандарте): например редактирование записи в таблице, созданной другим пользователем; или созданной в закрытом (условно) периоде и пр. Увязка бизнес-логики - через права на хранимые функции: пользователю даются права на запуск функции, а сама функция создается как запускаемая с правами создателя (SECURITY DEFINER) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2007, 12:53 |
|
||
|
разграничение прав доступа
|
|||
|---|---|---|---|
|
#18+
т.е. функция при запуске проверяет наличие у пользователя прав на выполнение каких-то действий - и в зависимости от этого работает или ругается? ну у меня тоже такие были подобные мысли. а нет в постгресе чего-то наподобие каких-то бизнес-правил специальных? вот в мсскл там чёто такое было - аппликейшнроулз какие-то. я особо не вникал в них - но вроде как это оно. тут нет чего-то подобного? я что-то не нашол. ну и ещё беспокоит такой вопрос: желательно, чтобы программа не ругалась при нажатии на кнопку, на которую текущий юзер не имеет прав - а просто кнопка не активна чтобы была. ну и на всякий случай и чтобы ругалась - если какой-то попадётся хитроухий. но в интерфейсе клиентского приложения надо наверное чтобы не оч страшно выглядело вто сделать так: нужно наверное насоздавать ролей без логина - и распределить их права - у каждой большой набор будет. а потом в клиентском приложении выводить список этих ролей как доступы к бизнес-функциям - и на них уже пользователям права раздавать - чтобы не на отдельные там таблицы/хранимки. как-то так. ну что-то вроде бы вырисовывается. и ещё такой момент: может вообще сделать всё руками своё - таблицы с правами и пользователями. а потом например триггерами отслеживать изменения в них - и раздавать права на объекты бд . . . как-то так. токо тут такой момент смущает: если кто-то мимо этой системы какие-то права править будет - то всё громко упадёт и концы трудно будет найти. надо думать дальше. предлагая всем интересующимся высказывать подобные мысли - какие бы сумбурные они ни были - а потом из них чёто уже осмысленное сложить. а вообще статью бы какую-то на эту тему - хоть на буржуйском. неужели ещё такого не изобрёл никто велосипеда :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2007, 14:53 |
|
||
|
разграничение прав доступа
|
|||
|---|---|---|---|
|
#18+
Я вроде как новичок в Постгре (а в мускль вообще глубоко не лазил), так что не могу ответить точно, но судя по названию - аппликейшнроулз наверное это аналог групроулз. Не думаю, что правильно будет все делать через триггеры. Для обычных пользователей системы вобще прямой доступ к таблицам должен быть закрыт (ИМХО естественно) - можно запускать только хранимые процедуры и всякие view для просмотра (естественно дальше тоже делится по правам). Для каких-то супер-пупер аналитиков, которые еще сами не знают чего хотят - дополнительно открыт select на все таблицы кроме служебных. И только админам разрешен прямой доступ к таблицам. Про клиентское ПО: одна из хранимых процедур (блин - не могу привыкнуть называть их функциями) возвращает тебе список разрешений для текущего окна интерфейса. Используешь ее при открытии (активации) окна и рисуешь как нужно: CheckUserRight(RightName or ArrayOfRightsNames):Bool or ArrayOfBool. Естественно проверяешь это и при попытке доступа в неразрешенную область... Да, кстати - само управление правами/ролями (как стандартными, так и в своей таблице) тоже лучше хранимой процедурой сделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2007, 15:54 |
|
||
|
разграничение прав доступа
|
|||
|---|---|---|---|
|
#18+
Гмм странно поиск по форуму работает и рулит но от этого никому не легче - ни тем кто задает n+1 разжеванный и переваренный вопрос ни тем кто пытается ответить... Милостидари ну дайвайте напряжемся и посмотрим чего может а чего не всостоянии сей прожект Небольшой оффтоп 2aov есть у меня предложение пиши на мыло в профиле чего тебе хочется написать ну и сколько не жалко заплатить. Может и договоримся нет - посоветую людей которые нарисуют арм как положенно, правда они большие любители огненой пчтычки фоеникса даи загружены поболее чем я - но поверь у ни есть аффигенный опыт создания и з нифига вполне живучей системы ;) Короче коли интересно - пиши. Кстати ты изСтольного Города? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2007, 04:57 |
|
||
|
разграничение прав доступа
|
|||
|---|---|---|---|
|
#18+
aov Оставляйте таблицу с пользователями, просто будете делать дополнительную проверку и в зависимости от того, под каким пользователем происходит вход в систему, делайте подключение к базе уже под соответствующем постгресовском пользователем у которого, права будут зашиты на уровне базы. Что касается прав, средствами постгреса, смотрите в документации Database Roles ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2007, 17:51 |
|
||
|
разграничение прав доступа
|
|||
|---|---|---|---|
|
#18+
Database Roles тщательно изучил - перевариваю и думаю как лучше увязать это дело с бизнес-логикой - которую полностью не получится свести к правам на объекты бд. вот ссылка на отот проект заинтересовала - пока не смотрел - и толком ещё ничего не понял. надо полистать - вступление заинтересовало - похоже на тот велосипед, который я собирался изобретать :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2007, 18:10 |
|
||
|
разграничение прав доступа
|
|||
|---|---|---|---|
|
#18+
Shweikдайвайте напряжемся и посмотрим чего может а чего не всостоянии сей прожект на этот вопрос я ответить не смог :). я под виндой работаю - только. ничего не понял. с си тоже не оч знаком - токо с си шарп. отети там всякие хидеры и инклюды для меня тёмный лес - хотя синтаксис языка и не оч отличается - но объектная модель оч отличается. ничего короче не понял :( как-то возможно эту технику под виндой посмотреть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2007, 19:50 |
|
||
|
разграничение прав доступа
|
|||
|---|---|---|---|
|
#18+
* Operating System: POSIX * Programming Language: C, PL/pgSQL Впрочем собирается и устанавливается (под FreeBSD+PG814 ) с пол-пинка. Тут все просто - есть сишные ХП которые контролируют доступ так что даже всемогущий postgres видит в демо-базе только структуру пустых вьюшек и сделать них неможет. Причем тут объектная модель и С# Под виндой IMHO меньшее зло это http://www.mingw.org/ Внимание - подсказка : PG под Виндовоз который вы скачали и его сишные contribs собраны именно этим компиллятором Но я сомневаюсь что вы соберете Veil этим пакетом ( очевидно что там придется рихтовать файлики make указывать пути к постгресовым икнлудам и хеадерам а возможно и что-то патчить в сорцах) - ну а это как вы сказали - темный лес. Так что ждите как это заведено в мире Windows пока это кто-то сделает за вас. ------------------------------------------------------------------------------------------------------------------------------------------ NATIVE OS FOR POSTGRESQL - POSIX!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2007, 01:13 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=297&tid=2005457]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 225ms |
| total: | 357ms |

| 0 / 0 |
