![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вход под одним логином [D7, IB6.x]
Genzzz © (2003-01-25 22:36:00)Очень странно, что в базу можно зайти под одним аккаунтом сразу с нескольких компьютеров.
Это можно поправить ?
Genzzz (2003-01-30 23:44:00) [61]1) В Оракле это легко реализуемо ?
2) А как эт овсе таки в IB/FB сделать ?
Sergey13 (2003-01-30 18:38:00) [62]2Genzzz (30.01.03 18:03)
Если у тебя такие требования к секретности, то твои взгляды нужно обратить в сторону платного ПО. Оракл например. За дешево сердито бывает редко.
Genzzz (2003-01-30 18:03:00) [63]Вот блин. Люди, вы странные какие-то ужас. Я говорю, что хочу реализовать. Вам обязательно знать, зачем это ? Вы здесь всех так допытываете. Если вы можете помочь - помогите. А не приводить дурацкие примеры. Reindeer Moss Eater, если под одним аккаунтом войдут два сотрудника - будет создано предупреждение, аккаунт аннулирован до окончания разбирательств кто у кого что украл. И вообще, я не хочу вас всех убеждать, что мне это нужно. ПОверьте на слово, что нужно. Наверное, я лучше понимаю, что надо делать в моей базе ?
alex-xxc, как понимаю, ты предлагаешь опять же сделать это на стороне клиента. А нужно на стороне сервера.
alex-xxc (2003-01-30 11:12:00) [64]Можно взять IBDatabaseInfo и у Database.AfterConnect пишем:
if IBDatabaseInfo.UserNames.IndexOf(USER_NAME)>=0 then
//пользователь уже подключен, закрываем коннект,
//ругаемся и т.д.
Reindeer Moss Eater (2003-01-30 10:36:00) [65]Реализовал Tsr (допустим) то, что хотел. Радуется.
Пришел на работу сотрудник, который знает логин и пароль другого сотрудника, который тоже придет, но позже.
Соединился первый сотрудник с базой данных используя логин второго сотрудника и сидит, ждет что будет.
Пришел на работу второй сотрудник, который не знает никаких логинов и паролей, кроме своего логина и своего пароля. Стал соединяться с базой данных второй сотрудник, да не тут-то было. Явилось ему сообщение программы в котором говорилось ему, второму сотруднику, что не можно быть ему залогонену сейчас, ибо уже залогонен один пользователь с таким именем.
Итог: на автоматизацию чего-то это совсем не похоже. Второй юзер хочет и должен работать, но не имеет возможности. Требуется администратор, который будет принимать решение и выполнять ручные опреации (дропать сессии, оттаскивать пользователей от компьютеров и т.д.)
Мораль: Зачем?
Sheriff (2003-01-30 10:14:00) [66]2Tsr
как Вам такой вариант:
- работаю с базой в IBConsole
- проверяю программу в Delphi
все это одновременно.
мне что 2 аккаунта заводить?
passm (2003-01-30 10:00:00) [67]Tsr (29.01.03 23:45)> Тогда используй дополнительные средства аутентификации пользователя (отпечатки пальцев, радужная оболочка глаза...) :)
Но представь другой механизм: есть торговая система, где для пользователей разделены права на создание/проведение торговых/хозяйственных операций. Есть цепочка поставок/перемещений... Так вот, что если пользователь имеет право на проведение какой-либо операции, которая порождает последовательность поставок/перемещений, содержащую операции на которые у него нет прав? Цепочки реализуются посредством DCOM-сервера. Выход - создание суперпользователя с наличием прав на все операции, DCOM-сервер логинится под его аккаунтем и проводит цепочку. Итак, получаем, что несколько коннектов к базе данных под одним пользователем нам просто необходимо.
Reindeer Moss Eater (2003-01-30 08:58:00) [68]Я, конечно, понимаю, что вы мне предлагаете идти по пути наименьшего сопротивления (ака ленивый бык) - нифига не делать, если это не архиважно.
Ты совсем не понял, что я тебе предлагаю.
Кроме того "ака" - это совсем не синоним слова "как". И в контексте сказанного тобой неприменим.
Tsr (2003-01-29 23:45:00) [69]Johnmen, очень здорово что ты привел такой классный пример, только я не понял его.
Johnmen, а вот еще, знаешь что. Если ты подделаешь документы ФСБ"шника - то тебя менты на машине не будут проверять, а сразу отпускать. Представь ? Он не будет проверять - есть ли в ФСБ такой агент или нет
Johnmen (2003-01-29 17:45:00) [70]>Tsr
Представь, что ты спионерил кредитную карточку и суешь ее в банкомат, при этом пользуясь спионеренным кодом...
Так вот, банкомату побарабану, кто пихает карточку !
Он не смотрит, правильный чел или нет.
Tsr (2003-01-29 17:36:00) [71]Reindeer Moss Eater, это правда так важно ? Я же говорю - ничего такого особенного. Просто логика использования базы подразумевает, что человек может быть в базе только один. И если их два - то значит кто-то у кого-то спионерил аккаунт.
Я, конечно, понимаю, что вы мне предлагаете идти по пути наименьшего сопротивления (ака ленивый бык) - нифига не делать, если это не архиважно. Но я так не люблю работать
Помогите, если кто знает как
Reindeer Moss Eater (2003-01-28 08:41:00) [72]Какая беда должна исчезнуть, если в одно и то же время не будут подключены одинаковые пользователи ? (От чего хотим избавиться иными словами?)
Tsr (2003-01-27 21:42:00) [73]Ну буду знать кто входил, используя мой клиент... а не допустим IBconsole
Никто не знает имя таблицы, где хранятся пользователи, использующие сейчас базу ?
Victor_Cr (2003-01-27 19:46:00) [74]При подключении вызывай с клиента хранимую процедуру которая запишет в какую-нибудь специально созданую таблицу имя вошедшего пользователя, время, ну и текст определяющий что это вход(выход или другое действие)...
Примерно так...
INSERT INTO LOG_TABLE (USER_NAME,LOGON_TIME,TXT_VERB)
VALUE (user,"now","вход(выход или другое действие)");
Спасти тебя это не спасет, но зато будешь знать кто и когда входил.
Deniz (2003-01-27 18:58:00) [75]По поводу справочников - это ЗРЯ, потому как если поставить блокировку и потерять connect, то user НИКОГДАбольше не зайдет (если админ не поправит).
Есть предложение руками с event"ом
1. Коннект к базе.
2. Регистрация на event и post event "UserName".
3. Обработка event"ов "UserName".
4. Решение о возможности коннекта.
Обработка должна проверять количество event"ов, т.к. получит еще и свой.
При аварийном завершении программы или потере коннекта, проблем с повторным подключением не будет.
В любом случае нужно экспериментировать
Удачи,
Денис.
Tsr (2003-01-27 18:34:00) [76]Ой, ну под трехуровневую сейчас это геморорй переделывать...
Reindeer Moss Eater
проблема в том, что если засечена попытка войти в базу под одним аккаунтом в одно время - создается предупреждение. А как реализовать - не знаю
mad0max
Штатной проверки средствами сервера по -моему нет, так что придется самостоятельно написать процедурку (например), и вызывать ее после коннекта. А уж последствия обрабатывай как хочешь....
Вызывать процедуру ? Из клиента ? Нет...
нужно что-то типа тригерра, я так думаю, который срабатывает после коннекта сразу. Также еще вроде в interbase есть таблица, где прописаны те, кто в данное время подключен (по крайней мере, IBConsole может это узнать).
Если есть такая таблица - подскажите название плиз.
Соловьев (2003-01-27 15:42:00) [77]Сделай 3-х уровневую БД, а там ручками на сервере сделай проверку при коннекте клиента : IP, Login, Password Море фантазии...
Reindeer Moss Eater (2003-01-27 15:33:00) [78]Странно а почему бы и нет ...
Странно для тех, кто забыл, зачем нужны логины и пароли
JibSkeart (2003-01-27 14:44:00) [79]Странно а почему бы и нет ...
Reindeer Moss Eater (2003-01-27 13:45:00) [80]mad0max
Мне вообще непонятна печаль автора вопроса.
Почему бы двум администраторам одновременно не смотреть в базу?
Ради бога. Хоть тысяча администраторов одновременно.
Но зачем им пользоваться одним и тем же логином?