Re[4]: Сессии в InterBase
От: Turbo Россия  
Дата: 19.08.04 09:55
Оценка:
А>>К примеру в базе 10 пользователей ... каждый имеет свои права и уровень доступа ... Как сделать так .. чтобы под одним логином не могли зайти несколько человек ..
А>>Если один подключился .. то другой под его именем и паролем уже не может

DM>Подозреваю, что только шаманством Могу предложить такой простенький метод.

DM>Заводишь табличку вроде такой:
DM> SesID integer
DM> UserName varchar(32) default current_user
DM>Делаешь unique на UserName.
DM>После коннекта пытаешься вставить в табличку имя пользователя. Если получил отлуп — значит такой пользователь уже есть, о чем ему радостно сообщаешь. Перед дисконнектом — убираешь имя пользователя из таблички.
DM>При вылете базы или обвале приложения-клиента — входишь любым средством администрирования IB/FB и правишь табличку пользователей.

Это я уже придумал. Но это не совсем удобно. Запускать некую программу для очистки таблицы или удалять из таблицы руками. Хотелось бы как нить придумать проверку ... грубо говоря пинга ... т.е. проверки подключен пользователь к базе или нет... Т.е. если бы по прошествии некоторого времени нет отклика от пользователя — то исключать его из базы залогиныных ...
сложность в том ... чтобы написать бы все это на самом сервере ... т.е. не придумывать программу ... которая будет проверять — есть отклик или нет... а сам сервер тестировал ...
одним словом нужен некоторый алгоритм .. который бы работал на уровне сервера InterBase ...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.