Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.26;
Скачать: CL | DM;

Вниз

авторизация пользователей   Найти похожие ветки 

 
*Ray* ©   (2006-09-19 19:11) [0]

Здравствуйте, уважаемые жители королевства!
У меня возникла проблема при написании базы данных на MySQL, Delphi7. Я искал ответ на просторах нашего королевства, но к сожалению так ничего и не нашел. Вопрос фактически в авторизации пользователей. Ситуация такая, есть БД на MySQL, к ней подсоединяются пользователи с разными правами, но насколько я понимаю авторизация влияет только на доступ к самой базе данных. А в программе имеются функции, которые должны быть доступны только определенным пользователям, то есть в зависимости от логина и пароля, то или иное окно не открывалось, или та или иная кнопка не нажималась. Как в программе привязать логин и пароль пользователя к соответствующей кнопке, cделать проверку? Буду благодарен за любую помощь! Заранее спасибо Вам!


 
*Ray* ©   (2006-09-19 19:14) [1]

Прошу прощения, уважаемые мастера, за неправильное обращение!


 
Desdechado ©   (2006-09-19 20:19) [2]

Можно считывать, что можно, а что нельзя из специальной таблицы с операциями, которую начиняет твоя програ с админскими правами.
Считать можно сразу при старте, а можно и по мере действий. Но несколько раздражающе будет выглядеть режим, дающий редактировать, но недающий сохранять...


 
*Ray* ©   (2006-09-19 20:26) [3]

to:Desdechado
Что-то я не совсем понял... может быть это связано с недостаточно ясной постановкой задачи. Попробую объяснить: в программе есть кнопка, которая обнуляет лицевые счета людей, но так как это операция связана с финансами, то нужно, чтобы эту кнопку мог нажать только, допустим, администратор, а для других свойство кнопки Enabled=false или при нажатии на кнопку выдавалась ошибка. Как я могу реализовать проверку, кто нажимает кнопку, то есть кто работает с базой данных.


 
Desdechado ©   (2006-09-19 20:38) [4]

В программу (читай - в БД) логинятся с паролем (каждый со своим, естественно). В зависимости от того, кто залогинился, можно из спецтвой таблицы достать, можно ли ему жать кнопку. Если нельзя, дизабли ее.
Ну, и на таблицы/ХП в БД тоже права раздай.


 
*Ray* ©   (2006-09-19 20:42) [5]

а как узнать кто залогинился?
как задать условие:
if login=xxx
 then кнопку можно назвать нажать
  else Error;
?


 
_Ламер_   (2006-09-19 21:45) [6]

Мне видется два варианта (сперва только надо права раздать юзерам)
1. Из под админки у самого сервера запрашивать данные о привилегиях того или иного пользователя (таблицы user и tables_priv в database mysql) и в соответствии с ними давать разрешения.
2. Завести отдельную таблицу с доступами к тем или иным компонентам.

Если у юзера доступа к операции удаления записей в определённой таблице нет, то сервер их не удалит. О раздаче прав пользователям написано в хелпе.


 
Desdechado ©   (2006-09-20 12:16) [7]

*Ray* ©   (19.09.06 20:42) [5]
Например, удобно использовать TActionList с TAction"ами, сохраняемый на гравной форме или в датамодуле. На каждую защищаемую кнопку/пункт меню/др. заводишь Action в этом листе. При подключении к БД вычитываешь права на эти экшены и сразу дизаблишь сами экшены.
А у кнопок/пунктов меню/др. назначаешь экшены, которые сами уже будут управлять доступностью.
Это удобный способ централизации управления бизнес-логикой.


 
*Ray* ©   (2006-09-22 10:26) [8]

Уважаемые мастера! Очень благодарен Вам за Ваши советы! Проблема решена!



Страницы: 1 вся ветка

Текущий архив: 2006.11.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.039 c
2-1163061109
svt
2006-11-09 11:31
2006.11.26
Подскажите пожайлусата как можно перебирать слова


2-1163056398
_ttl
2006-11-09 10:13
2006.11.26
TMemo


1-1161011964
BorisMor
2006-10-16 19:19
2006.11.26
Матричный принтер


2-1162831087
nttp
2006-11-06 19:38
2006.11.26
StringGrid значение из ячеек.


1-1161090978
pic509
2006-10-17 17:16
2006.11.26
Стандарный отчет вDelphi 5 печатает только первую страницу