Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.028 c
6-1151921416
flaxe
2006-07-03 14:10
2006.11.26
Печенюшки... в Twebbrowser


2-1162874303
Steep
2006-11-07 07:38
2006.11.26
MS SQL Server 2000


15-1162786837
DelphiN!
2006-11-06 07:20
2006.11.26
Просмотр лог файла программы FTP.EXE


15-1162962849
Elen
2006-11-08 08:14
2006.11.26
Подскажите в сети литературу о PopUp меню


2-1162804000
leonidus
2006-11-06 12:06
2006.11.26
Не пойму как работает функция Utf8ToUnicode




   Наверх