URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 4536
[ Назад ]

Исходное сообщение
"Назначение прав в WEB-приложениях"

Отправлено WinLin , 30-Ноя-06 11:47 
Пишу приложение: PostgreSQL + mod_perl.
Знаний в этой области мало...

I. Где лучше хранить пользователей и их права?
1) Если хранить в БД, то не нужно проверять права в программе
и отдавать базе голый SQL. Придется ли в этом случае
создавать виртуальную таблицу user или достаточно
SQL запросов для отображения прав на экране?
2) Если в программе, то создать таблицу user и там хранить
виртуальные права.
Все виденные мною программы используют вариант 2
и соединяются с базой суперпользователем.

II. Смутил один пример базы.
Там от базы в привычном смысле мало что осталось - каждое поле в отдельной таблице,
то есть вместо p.fam,p.im,p.ot существуют таблицы fam,im,ot.
Если нужно назначить права на определенные поля их и нужно группировать
по отдельным таблицам?


Содержание

Сообщения в этом обсуждении
"Назначение прав в WEB-приложениях"
Отправлено Ivan Zemlyakov , 01-Дек-06 10:59 

>I. Где лучше хранить пользователей и их права?
>2) Если в программе, то создать таблицу user и там хранить
>виртуальные права.

Да.

>и соединяются с базой суперпользователем.

Никогда, это жуткая дыра! Сделай отдельного пользователя с урезанными админскими правами только на эту БД, его имя и пароль храни как переменные в файле за пределами дерева каталогов апачи и подгружай в первых строках скрипта.

>II. Смутил один пример базы.
>Там от базы в привычном смысле мало что осталось - каждое поле
>в отдельной таблице,
>то есть вместо p.fam,p.im,p.ot существуют таблицы fam,im,ot.
>Если нужно назначить права на определенные поля их и нужно группировать
>по отдельным таблицам?

Это неправильно, но считается, что позволяет работать со страшной скоростью после сотритровки и индексации на очень больших базах (миллионы записей). У тебя будут такие объемы? Если нет - работай традиционно.


"Назначение прав в WEB-приложениях"
Отправлено WinLin , 01-Дек-06 11:46 
Придется заменять административные функции БД самописными?

>>II. Смутил один пример базы.
>>Там от базы в привычном смысле мало что осталось - каждое поле
>>в отдельной таблице,
>>то есть вместо p.fam,p.im,p.ot существуют таблицы fam,im,ot.
>>Если нужно назначить права на определенные поля их и нужно группировать
>>по отдельным таблицам?
>
>Это неправильно, но считается, что позволяет работать со страшной скоростью после сотритровки
>и индексации на очень больших базах (миллионы записей). У тебя будут
>такие объемы? Если нет - работай традиционно.

Сотни тысяч...
Так и создавать одна таблица на каждое поле.