Форум: "Базы";
Текущий архив: 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.094 c