Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];

Вниз

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

 
*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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.042 c
15-1162668128
Зм1й
2006-11-04 22:22
2006.11.26
Просканировать комп


1-1160656672
Ш-К
2006-10-12 16:37
2006.11.26
Singleton и интерфейсы


1-1160670375
Евгений Тарабановский
2006-10-12 20:26
2006.11.26
Как сгенерировать HardwareID?


3-1159097963
Antoxa2005
2006-09-24 15:39
2006.11.26
Подскажите, а как "добраться" до примечаний полей и таблиц в FB.


1-1160722650
CaptainX
2006-10-13 10:57
2006.11.26
Перенести текст или файл на иконку в трее (Drag and Drop)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский