Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2012, 18:39   #1
hunter08923
Пользователь
 
Регистрация: 29.03.2011
Сообщений: 30
Вопрос Создание групп пользователей в БД на DELPHI

Пытаюсть создать БД на Делфи. Использую при этом заготовленную базу Access (которой управляю через Делфи). Основная задача - защита БД. Хочу создать учетные группы Админа и USER'а. Кто-нибудь может подсказать, как это сделать?
hunter08923 вне форума Ответить с цитированием
Старый 06.11.2012, 23:12   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Какое именно место создания? То, которое на уровне СУБД (то есть Сервис-защита-пользователи и группы) или на уровне самой БД (таблица Группы, связанная с таблицей Пользователи)?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 07.11.2012, 00:24   #3
hunter08923
Пользователь
 
Регистрация: 29.03.2011
Сообщений: 30
По умолчанию

ну в общем я написал программу с БД в ней будут работать несколько групп пользователей. мне нужно чтобы каждый пользователь заходил именно в свою группу и видел только информацию необходимую ему. как это реализовать?
hunter08923 вне форума Ответить с цитированием
Старый 07.11.2012, 09:04   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Ну обычно я то так делаю:

уровневая структура (снизу вверх): права ->роли (они же группы) ->пользователи

При открытии программы делал так:

1) определял, какой юзер зашел в БД
2) определял его роль в БД
3) фильтровал права по роли и определял вывод меню таким образом:

Код:
menu1.Visible:=TableRights.FieldByName('Чтение').Asboolean;
menu2.Visible:=TableRights.FieldByName('Редактирование').Asboolean;
menu3.Visible:=TableRights.FieldByName('Добавление').Asboolean;
и тп.

Если в коде меню дублировались кнопками на панели, то еще добавлялся код:

Код:
Button1.Enabled:=menu1.visible;
Button2.Enabled:=menu2.Visible;
ДумаЮ, идея понятна? Код прописывается один раз, в событии OnShow рабочей формы сразу после ввода пароля.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 07.11.2012, 09:20   #5
hunter08923
Пользователь
 
Регистрация: 29.03.2011
Сообщений: 30
По умолчанию

в принципе я так и думал как запасной вариант...это же придется под каждую группу пользователей все формы дублировать и подстраивать(
я просто думал мало ли в делфи продумали что нибудь уже с компонентами и свойствами
спасибо за помощь ... хоть кто то откликнулся
hunter08923 вне форума Ответить с цитированием
Старый 07.11.2012, 09:29   #6
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
под каждую группу пользователей все формы дублировать и подстраивать
Зачем? Сразу после ввода пароля одной процедурой для всех форм и задавать. Код пишется всего в одном месте по большому счету - в авторизации.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 07.11.2012, 10:57   #7
hunter08923
Пользователь
 
Регистрация: 29.03.2011
Сообщений: 30
По умолчанию

а как быть с тем что у меня на большинстве форм информацию гриды выводят...а разным группам пользователей нужны свои поля на выводе
hunter08923 вне форума Ответить с цитированием
Старый 07.11.2012, 11:41   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Сообщение от hunter08923 Посмотреть сообщение
а как быть с тем что у меня на большинстве форм информацию гриды выводят...а разным группам пользователей нужны свои поля на выводе
Разные списки полей в SELECT для разных групп если в гриде список колонок не предопределен. Если предопределен, то можно одним списком полей в SELECT, управляя видимостью колонок в зависимости от группы. И не надо формы плодить
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.11.2012, 13:49   #9
hunter08923
Пользователь
 
Регистрация: 29.03.2011
Сообщений: 30
По умолчанию

подскажи поподробнее как там с видимостью сделать? заранее спасибо
hunter08923 вне форума Ответить с цитированием
Старый 07.11.2012, 14:02   #10
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Код:
DBGrid1.Columns.Items[i].Visible
i - номер колонки начиная с нуля.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание пользователей hunter08923 Общие вопросы Delphi 0 06.11.2012 17:49
создание групп и подгрупп в TreeView Рустам Общие вопросы Delphi 3 09.06.2011 14:00
Создание пользователей БД MySQL в Delphi lordaleksej БД в Delphi 5 14.12.2009 21:36
Создание групп на сайте самим юзером unstop PHP 2 18.03.2009 00:35