Пароль для всіх, як зробити

Пароль для всіх, як зробити

Поскажите як можна встановити в програмі пароль для кожного користувача який буде їй пользоиваться.

Пишу свою прогу связоную з базою даних, але хочу зробити так, щоб їй міг користуватися не кожна людина, а хто буде пользовваться, то щоб у нього були певні права і можливості управління прогой.
Приклад 1:
Адмін. - максимальний доступ.
Зам.Адміна - середній доступ.
Підлеглий - мінімальний доступ.


Або просто коли користувач вводить свій пароль, програма його дізнавалася і здаровалась з ним.

Приклад 2:
Пароль: 12345 = Привіт Вася!
Пароль: 56789 = Привіт Надя!
або Пароль: 00 = Здрастуйте Господар!

Ну і в такому роді.

Тобто мене цікавить, щоб я міг коли завгодно змінити пароль або взагалі його видалити.

Наведіть будь ласка приклад, тільки якщо можна простіше.

Пароль для всіх, як зробити

Добре б знати, що за СУБД у Вас, тому як в різних СУБД це можна вирішити по-різному. У мене була така проблема: в організації є понад 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)

Я просто виклав своє рішення, може стане в нагоді, хто його знає.

Схожі статті