Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вход под одним логином [D7, IB6.x]


Страницы:   1 2 3 4 5

Genzzz ©   (2003-01-25 22:36:00) 

Очень странно, что в базу можно зайти под одним аккаунтом сразу с нескольких компьютеров.

Это можно поправить ?


Sergey13   (2003-02-06 09:32:00) [41]

2Genzzz (05.02.03 22:40)
>1. Когда идет подключение к серверу - вызывается некий триггер, типа OnLogin
В ИБ нет тригеров уровня БД. Это тебе на Оракл надо. 8-) Че то ты кажись зациклился на проблеме. 8-) Какая для тебя принципиальнаяразница на какой стороне идет проверка. Тебе же предлагали вполне работоспособные варианты.


Genzzz   (2003-02-05 22:40:00) [42]

Desdechado, я себе представляю это так:

1. Когда идет подключение к серверу - вызывается некий триггер, типа OnLogin
2. В этом триггере идет проверка на существование уже такого логина
3. Если такой логин существует, то он аннулируется.

А вот как реализовать - не знаю...


Конечно, firebrid поставляется с исходниками... но у меня, думаю, не хватит квалификации


Harry   (2003-02-05 19:44:00) [43]

Если нельзя сделать этого стандартными средствами сервера, почему это нельзя проэмулировать самостоятельно? Скажем написать прогу, котроя периодически проверяет подключение к базе данных двух логинов и выдает каким-либо образом сообщекние, вплоть до отправления на мыло или SMS.


Desdechado   (2003-02-05 19:23:00) [44]

я себе представляю процесс так:
1. программа-клиент запускается, требуя логин у юзера
2. юзер вводит логи-пароль
3. программа-клиент долбится к серверу и узнает список логинов, с которыми к БД уже подключились
4. проверяет, есть ли в нем логин, который ввел текущий юзер
5. ругается или пускает дальше - по обстоятельствам

так что НА СТОРОНЕ КЛИЕНТА.

а как применить при этом сторону сервера - не вижу. Покажи.


Genzzz   (2003-02-05 19:02:00) [45]

Задавая вопрос, даже и представить не мог, что это настолько сложно и никто не знает как реализовать...


Genzzz   (2003-02-04 18:37:00) [46]

Ой, блиииин....

Desdechado, ну я ведь говорю ! Мне не на стороне КЛИЕНТА нужно, а на стороне СЕРВЕРА !


Desdechado   (2003-02-04 13:37:00) [47]

с клиента подключаешься через IBX к серверу и читаешь список подключенных к нему всех клиентов TIBDatabaseInfo (логинов, в смысле, а не тачек)


passm   (2003-02-04 09:59:00) [48]

Genzzz (02.02.03 11:24)> Разумеется, не хорошо. Но ведь ты собираешься реализовать весьма нестандартную весчь...


Johnmen   (2003-02-04 01:20:00) [49]

Для этого есть средства администрирования...


Genzzz   (2003-02-04 00:46:00) [50]

Блин, а как посмотреть список подключенных юзеров на стороне сервера ?
не нету там ни IBX, ни BDE :-)

Desdechado, спасибо за ссылку, пойду глядеть


Tio   (2003-02-04 00:46:00) [51]

Блин, а как посмотреть список подключенных юзеров на стороне сервера ?
не нету там ни IBX, ни BDE :-)

Desdechado, спасибо за ссылку, пойду глядеть


Desdechado   (2003-02-02 18:20:00) [52]

не совсем по теме, но, может, придут еще мысли по мотивам
http://www.volny.cz/iprenosil/interbase/ip_ib_isc4.htm

а список подключенных юзеров можно в компонентах IBX через TIBDatabaseInfo прочитать


Genzzz   (2003-02-02 11:24:00) [53]

passm
при всем написанном вся проверка на стороне клиена, что не есть ГУД.


passm   (2003-01-31 11:18:00) [54]

Max Zyuzin © (31.01.03 11:04)> Потому и предлагаю:
НАЧАЛО ПРИЛОЖЕНИЯ:
Database1.TransIsolation = tiDirtyRead
ЕСЛИ есть запись о регистрации - вываливаемся
ИНАЧЕ стартуем транзакцию, вносим запись о регистрации, открываем второй Database2
КОНЕЦ ПРИЛОЖЕНИЯ:
Закрываем Database2
Database1.Rollback

ЗЫ: Сам не пробовал :)


Max Zyuzin   (2003-01-31 11:04:00) [55]

>passm © (31.01.03 10:56)
Ну второй конект производится только для того, что бы определить, есть ли первый... Если есть сразу отваливаемся...

А на счет аварийных выходов, это да... проблемма...


passm   (2003-01-31 10:56:00) [56]

Max Zyuzin © (31.01.03 10:49)> Подходит только если организовать второе соединение с БД на уровне DirtyRead и запустить транзакцию, которая заканчивается при выходе из приложения. Иначе при аварийном выходе - останется "привет" от прошлого соединения.
Но все это противоречит тому, что необходим только один коннект с БД. А тут их минимум два.


Max Zyuzin   (2003-01-31 10:49:00) [57]

>Genzzz (30.01.03 23:44)
А чем вам не нравится такой вариант? Victor_Cr © (27.01.03 19:46) ИМХО вполне приемлимо...


passm   (2003-01-31 10:16:00) [58]

Genzzz (30.01.03 18:03)> Ничего странного.
Перечитай <Genzzz (25.01.03 22:36)>


Sergey13   (2003-01-31 08:31:00) [59]

2Genzzz (30.01.03 23:44)
>1) В Оракле это легко реализуемо ?
Количество сессий на клиента - легко - через использование профиля. Там вообще много чем можно порулить. Практически всем. Но и отвечать за все придется самому.


Александр С.   (2003-01-31 07:34:00) [60]

Решений множество, но не чисто серверных:
1. Клиент имеет грант ТОЛЬКО на получение имени роли (через СП или вид).
Сами клиенту о ролях догадываться и не должны.
Подключение к серверу не с помощью клиентской программы ему ни чего не даст.
Подключение с помощью клиентской программы происходит в два приема:
I подключение без роли и получение ее имени.
II подключение с именем и ролью.
Для роли установлены гранты, которыми теперь пользователь может также пользоваться.
Так же на сервере происходит блокирование подключения пользователя с таким именем.
При попытке нового коннекта с таким именем оповещается админ с помощью POST EVENT.

2. Клиент привязан к машине, и клиентская программа помимо пользователя передает при логине помимо имени-пароля IP адрес. Сервер проверяет 3 составляющих и пускает либо нет клиента.
Любая не клиентская программа передавать адрес не будет.
Подобных заморочек можно придумать еще, но одному серверу не потянуть.


Страницы:   1 2 3 4 5

Наверх

Титульная страница Поиск, карта сайта Написать письмо