Главная страница
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.058 c
15-1162810252
m-kirill-2003
2006-11-06 13:50
2006.11.26
Помогите! Срочно!


15-1162832483
Loginov Dmitry
2006-11-06 20:01
2006.11.26
Ценные примеры кода от начинающих студентов-программистов


2-1163083774
SerGoP
2006-11-09 17:49
2006.11.26
Нарастающий итог в столбце


15-1163023829
Орион
2006-11-09 01:10
2006.11.26
Задачка


4-1152563763
incm
2006-07-11 00:36
2006.11.26
Как читать из файла открытого другой прогой на запись