![]() |
|
|
![]()
|
|
| Sett |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 20.12.2004 Где: Подольск Репутация: нет Всего: нет |
Приветствую всех!
Поскажите как можно установить в программе пароль для каждого пользователя который будет ей пользоываться. Пишу свою прогу связоную с базой данных, но хочу сделать так, чтобы ей мог пользоваться не всякий человек, а кто будет пользовваться, то чтоб у него были определённые права и возможности управления прогой. Пример 1: Админ. - максимальный доступ. Зам.Админа - средний доступ. Подчинённый - минимальный доступ. Или просто когда пользователь вводит свой пароль, программа его узнавала и здаровалась с ним. Пример 2: Пароль: 12345 = Привет Вася! Пароль: 56789 = Привет Надя! или Пароль: 00 = Здрасти Хозяин! Ну и в таком роде. Тоесть меня интересует, чтобы я мог когда угодно изменить пароль или вообще его удалить. Приведите пожалуйста пример, только если можно попроще. Спасибо. |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 17 Всего: 162 |
Создай таблицу пользователей в базе и храни там пароли и имена людей, но только закодируй их.
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
Воспользуйся Access-ом. :-)
|
|||
|
||||
| mvdr |
|
|||
|
физик ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1349 Регистрация: 31.12.2004 Где: Волгоград, Россия Репутация: нет Всего: 42 |
я уже неоднократно предлогаю свой выход из ситуации с паролированием: он простой, но и оригинальный. Для данной ситуации можно сделать так:
где то ( хоть в файле passwords.txt ) храняться пароли и имена всех пользователей ( их можно закодировать ) и их статусы ( т.е. разграничитель по правам ). перед открытием формы появляется окошко с просьбой ввести пароль и имя, остальные компаненты ставятся на Panel1, которая Visible=false. Дальше при нажатии на кнопку ( или сочитание клавиш ) происходит "регистрация" пользовотельского имени и пароля - сравнение с имеющейсяя базой. Если находим совпадение, то делаем Panel1.Visible=true и статус передаем Edit1.Text Теперь о правах: надо прописать, что если Edit1.Text='Админ', то все компаненты открыты, если же Edit1.Text='пользователь', то часть кнопок ( свойств, методов, и т.д. и т.п. ) делаем не видимыми. способ проверенный - единственный его минус - много прописывать руками, но мне, например, так гораздо приятнее и больше нравиться. -------------------- Появляюсь редко, но часто метко Изображать идиота сложнее, чем изображать умного: полезнее и не каждому дано |
|||
|
||||
| User |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 5.11.2004 Репутация: нет Всего: нет |
Alex а нельзя ли поподробнее узнать у тебя как это сделать.
<Создай таблицу пользователей в базе и храни там пароли и имена людей> Заранее благодарен. |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 17 Всего: 162 |
Xто именно хочешь разграничивать? Добавлено @ 22:45 Опиши свою ситуацию более детально, что бы я мог дать более полный ответ -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Sett |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 20.12.2004 Где: Подольск Репутация: нет Всего: нет |
Что надо создать базу с разделением пароль и имя пользователя понятно,
мне понятно, как будет вглядеть запрос при появлени окошка предлагающего ввести пароль, т.е. сам код Как он будет проверять есть ли в списке базы этот пароль? По возможности покажите пожалуйста сам Код, или исходник, плиз.. Буду очень благодарен! |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 17 Всего: 162 |
Ну тогда как минимум нужно занать о какой базе данных идет речь
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Sett |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 20.12.2004 Где: Подольск Репутация: нет Всего: нет |
Смысал в чём, на файл баз-данных пароля не будет, он будет шифроваться, а пароль нужен на саму программу, почему я вопрос задал в этой рубрике, так это потому что, список паролей и пользователей, которые будут иметь допуск, храниться в файле баз-данных.
Поэтому я решил что и вопрос собственно к месту. Мне нужен код чтобы понять как строка Edit будет проверять в файле с паролями если такой или нет, т.е нужен код, исходник, пример. |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 17 Всего: 162 |
Еще раз говорю как я тебе дам ответ на вопрос если я незнаю какие компоненты ты используешь для доступа к базе данных.
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Sett |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 20.12.2004 Где: Подольск Репутация: нет Всего: нет |
Table, DataSource, DBGrid, всего 3 компонента
|
|||
|
||||
| Dimich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: 3 Всего: 7 |
Хорошо бы знать, что за СУБД у Вас, потому как в разных СУБД это можно решить по-разному. У меня была следующая проблема: в организации есть более 50 юзеров, каждый из которых выполняет свою специфическую работу в БД. Программный комплекс состоит из примерно 20 независимых компонентов (это и программы корректировки и ввода информации и различные отчеты и т.д.) Каждый юзер должен иметь свой набор компонентов (обычно не более 10), а остальные ему не только не нужны, но и нежелательны. Я пошел по следующему пути: на сервере выделил место для хранения всех этих компонентов (у меня Samba, но это не важно), а юзерам сделал менюшку, которая получив username и password читает из базы роль юзера и формирует на ее основании индивидуальную менюшку - работай на здоровье со своими программами (только те проги, что появились в менюшке, он может запускать)
Алгоритм работы менюшки следующий. 1. Запришиваем username и passord 2. Коннектимся к БД (если соединение не установлено, то ничего не поделаешь - ты чужой) 3. Читаем табличку USR SQL> desc usr; Name Null? Type ------------------------------- -------- ---- USER_ID NOT NULL NUMBER(5) USROLE_ID NUMBER(5) USDTFN NOT NULL DATE USNAME NOT NULL VARCHAR2(10) USDTST NOT NULL DATE USFIO VARCHAR2(30) select * from usr where usname=:usname; 4. Проверяем, зарегистрирован ли пользователь в этой табличке, попадает SYSDATE в интервал USDTST..USDTFN и запоминаем его USER_ID 5. далее читаем таблички STRMENU и BARMENU (вертикальное меню и горизонтальное) с записями для этого пользователя. Вообще то STRMENU и BARMENU это своего рода справочники, а соответствие между элементом меню и USER_ID задается еще одной табличкой - USRMNU. Вот структура этих таблиц: SQL> desc barmenu; Name Null? Type ------------------------------- -------- ---- BARMENU_ID NOT NULL NUMBER(4) STRMENU_ID NOT NULL NUMBER(1) BARMENU NOT NULL VARCHAR2(50) BARMENUPATH NOT NULL VARCHAR2(50) SQL> desc strmenu; Name Null? Type ------------------------------- -------- ---- STRMENU_ID NOT NULL NUMBER(1) STRMENU NOT NULL VARCHAR2(15) SQL> desc usrmnu Name Null? Type ------------------------------- -------- ---- USER_ID NOT NULL NUMBER(5) BARMENU_ID NOT NULL NUMBER(4) Я просто изложил свое решение, может пригодится, кто его знает...... --------------------
Не работает - исправь, работает - не трогай!!! |
|||
|
||||
| Sett |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 20.12.2004 Где: Подольск Репутация: нет Всего: нет |
Dimich Спасибо друг, обязательно попробую.
|
|||
|
||||
| User |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 5.11.2004 Репутация: нет Всего: нет |
Alex в продолжение темы
К примеру если БД Paradox то как хранить пароль! |
|||
|
||||
| Sett |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 57 Регистрация: 20.12.2004 Где: Подольск Репутация: нет Всего: нет |
Если есть ещё какие нибудь способы, буду рад их расмотреть
|
|||
|
||||
| mvdr |
|
|||
|
физик ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1349 Регистрация: 31.12.2004 Где: Волгоград, Россия Репутация: нет Всего: 42 |
А создавать базу обязательно?
Можно использовать связб с файлом txt формата.т.е .при нажатии на кнопку "Войти" файл загружается в Мемо, там прогонкой выискивается нужный логин и пароль, и далее как уже выяснено. Для красоты можно файл закодировать. минусом является то, что к этому файлу может иметь доступ каждый, но этого можно избежать,делая несколько копий и потом проверять, еслидата сохранения файла1 не совпадает с той, которая была сделана при записи, то открывать файл2. -------------------- Появляюсь редко, но часто метко Изображать идиота сложнее, чем изображать умного: полезнее и не каждому дано |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Когда-то давно была вот такая тема - можно посмотреть.
|
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 17 Всего: 162 |
Я бы сказал так: хранить можно где угодно главное его зашифровать. -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |