Форум: "Базы";
Текущий архив: 2003.03.24;
Скачать: [xml.tar.bz2];
ВнизВход под одним логином Найти похожие ветки
← →
Genzzz (2003-02-02 11:24) [40]passm
при всем написанном вся проверка на стороне клиена, что не есть ГУД.
← →
Desdechado (2003-02-02 18:20) [41]не совсем по теме, но, может, придут еще мысли по мотивам
http://www.volny.cz/iprenosil/interbase/ip_ib_isc4.htm
а список подключенных юзеров можно в компонентах IBX через TIBDatabaseInfo прочитать
← →
Tio (2003-02-04 00:46) [42]Блин, а как посмотреть список подключенных юзеров на стороне сервера ?
не нету там ни IBX, ни BDE :-)
Desdechado, спасибо за ссылку, пойду глядеть
← →
Genzzz (2003-02-04 00:46) [43]Блин, а как посмотреть список подключенных юзеров на стороне сервера ?
не нету там ни IBX, ни BDE :-)
Desdechado, спасибо за ссылку, пойду глядеть
← →
Johnmen (2003-02-04 01:20) [44]Для этого есть средства администрирования...
← →
passm (2003-02-04 09:59) [45]Genzzz (02.02.03 11:24)> Разумеется, не хорошо. Но ведь ты собираешься реализовать весьма нестандартную весчь...
← →
Desdechado (2003-02-04 13:37) [46]с клиента подключаешься через IBX к серверу и читаешь список подключенных к нему всех клиентов TIBDatabaseInfo (логинов, в смысле, а не тачек)
← →
Genzzz (2003-02-04 18:37) [47]Ой, блиииин....
Desdechado, ну я ведь говорю ! Мне не на стороне КЛИЕНТА нужно, а на стороне СЕРВЕРА !
← →
Genzzz (2003-02-05 19:02) [48]Задавая вопрос, даже и представить не мог, что это настолько сложно и никто не знает как реализовать...
← →
Desdechado (2003-02-05 19:23) [49]я себе представляю процесс так:
1. программа-клиент запускается, требуя логин у юзера
2. юзер вводит логи-пароль
3. программа-клиент долбится к серверу и узнает список логинов, с которыми к БД уже подключились
4. проверяет, есть ли в нем логин, который ввел текущий юзер
5. ругается или пускает дальше - по обстоятельствам
так что НА СТОРОНЕ КЛИЕНТА.
а как применить при этом сторону сервера - не вижу. Покажи.
← →
Harry (2003-02-05 19:44) [50]Если нельзя сделать этого стандартными средствами сервера, почему это нельзя проэмулировать самостоятельно? Скажем написать прогу, котроя периодически проверяет подключение к базе данных двух логинов и выдает каким-либо образом сообщекние, вплоть до отправления на мыло или SMS.
← →
Genzzz (2003-02-05 22:40) [51]Desdechado, я себе представляю это так:
1. Когда идет подключение к серверу - вызывается некий триггер, типа OnLogin
2. В этом триггере идет проверка на существование уже такого логина
3. Если такой логин существует, то он аннулируется.
А вот как реализовать - не знаю...
Конечно, firebrid поставляется с исходниками... но у меня, думаю, не хватит квалификации
← →
Sergey13 (2003-02-06 09:32) [52]2Genzzz (05.02.03 22:40)
>1. Когда идет подключение к серверу - вызывается некий триггер, типа OnLogin
В ИБ нет тригеров уровня БД. Это тебе на Оракл надо. 8-) Че то ты кажись зациклился на проблеме. 8-) Какая для тебя принципиальная разница на какой стороне идет проверка. Тебе же предлагали вполне работоспособные варианты.
← →
Reindeer Moss Eater (2003-02-06 09:45) [53]Какая для тебя принципиальная разница на какой стороне идет проверка.
Клиент не обязан использовать программу, в которой реализован механизм защиты. Он может запустить например SQL explorer
← →
Sergey13 (2003-02-06 10:25) [54]2Reindeer Moss Eater (06.02.03 09:45)
>Клиент не обязан использовать программу, в которой реализован механизм защиты. Он может запустить например SQL explorer
Ну тогда, только Оракл, хотя это и там не так просто реализовать.
Я где то видел описание такого решения. Вводя логин и пароль юзер на самом деле вводит данные для некоей функции, которая вместо введенных подставляет истинные логины и уже с ними лезет в базу. Например Иванов в базе может быть Bdfyjd. Тогда проблема с "чужими" программами отпадает - юзер не знает своего истинного логина.
Или стереть все программы типа SQL explorer у клиента, и запретить ставить их. 8-)
← →
Genzzz (2003-02-06 20:40) [55]Sergey13
о, это уже идея... действительно, не подумал - можно ведь сделать некую прослойку, чтобы юзеры работали с одним аккаунтом, а сервер - с другими, надо только функцию преобразования поглубже запихнуть :-))
Правда, лучше реализовать все таки по нормальному, иначе проблемы с админстрированием и другие неприятности...
← →
Sergey13 (2003-02-07 09:26) [56]2Genzzz (06.02.03 20:40)
> иначе проблемы с админстрированием и другие неприятности...
А какие проблемы? Добавляй к имени пользователя например "-гад" - и мральное удовлетворение получишь и юзер ни о чем не догадается и все понятно кто работает - "иванов-гад". Можно и покрепче словечки подобрать. 8-)
← →
Genzzz (2003-02-08 00:32) [57]Sergey13, а вдруг догадается ? И все равно это не очень... у базы могут быть различные администраторы, которые имеют различные права... и стоит увидеть, что в к именам пользователя приписывается -гад как вся защита накроется :-(
Это все, конечно, варианты, но полумерные...
← →
Genzzz (2003-02-09 14:28) [58]может у кого появились идеи ?
← →
Cranium (2003-02-10 01:13) [59]Ну тут вроде ни кто про UDF не вспомнил! Тогда схема такая:
1) Отлавливаем вход юзера, ну скажем по тригеру
2) А все остальное реализуем через UDF
Конечно другой админ может сделать тригер не активным, но на то он и админ....
← →
Sergey13 (2003-02-10 09:03) [60]2Cranium © (10.02.03 01:13)
>1) Отлавливаем вход юзера, ну скажем по тригеру
По какому????
2Genzzz (08.02.03 00:32)
>у базы могут быть различные администраторы
А зачем администраторов под одну гребенку с обычными юзерами? Что положено Юпитеру...
>Это все, конечно, варианты, но полумерные...
Опять повторюсь, ты много хочешь за бесплатно. Серьезные решения стоят серьезных денег. Иногда ОЧЕНЬ серьезных.
К тому же. А почему ты все про базу говоришь? Может подумать про нормальное администрирование сети. Там можно много чего настроить.
← →
{bas} (2003-02-10 10:02) [61]А грант на ссесию м. в IB давать??
← →
dash78 (2003-02-10 10:09) [62]Удалено модератором
Примечание: Личная переписка
← →
SergeyKatruk (2003-02-10 16:57) [63]Не обязательно Оракл, можна и Информикс.............
← →
Nikolay M. (2003-02-11 10:17) [64]Может я поздно включился и чего не понял, но почему обязательно нужно реализовывать несколько коннектов к БАЗЕ? К собственно БД логин-пароль будет один (SYSDBA/masterkey), а у юзеров для входа в твою прогу будут заводимые администратором (или продвинутым пользователем) логины (vasya/1234), которые будут лежать в закодированном виде где-нибудь на сервере. И кто мешает сделать проверку на клиенте, стоит ли в этой таблице юзеров напротив введенного логина галочка "юзер уже находится в системе"?
Проблема, как я понимаю, не в том, чтобы дать каждому юзеру свой логин к базе, а в том, чтобы не дать двум юзерам работать под одним логином в твоей проге.
А заводить каждому юзеру логин в БД - имхо, чесаться левой ногой. Рано или поздно найдется продвинутый 10-классник, который запустит SQL Explorer и потрет под своим логином все записи в таблицах, на которые ему дан доступ.
Еще раз сорри, если пост не в тему или такая мысль уже проходила.
← →
Genzzz (2003-02-12 18:18) [65]Nikolay M
спасибо, что пробегая рядом, решили поделиться мыслями...
Очень порадовало:
А заводить каждому юзеру логин в БД - имхо, чесаться левой ногой. Рано или поздно найдется продвинутый 10-классник, который запустит SQL Explorer и потрет под своим логином все записи в таблицах, на которые ему дан доступ
А вы как себе представляете логику работы базы ?
← →
Genzzz (2003-02-15 01:25) [66]поднимаю ветку
← →
Chubaiss (2003-02-15 02:25) [67]Аа-а-а-а-а-а-а-а-а--а-а-а..........Пук.....................
← →
ЮЮ (2003-02-15 03:19) [68]Для Чубайса ветка оказалась неподъёмная :-) Ну, допустим, ты решишь эту проблему на стороне сервера и у тебя появится свободное время сделать ещё одно клиентское приложение. А оно не запускается, говорит "вы уже на Базе" :-) Твоё "извращеное" желание "один аккаунт - один коннект" верно только в рамках твоего приложения, вот в рамках своего приложения его и реализуй.
← →
Genzzz (2003-02-15 13:20) [69]ЮЮ, а можно расшифровать ваш глубокомысленный пост ?
что-то не понял я
← →
sndanil (2003-02-15 17:00) [70]2ЮЮ желание на самом деле вполне нормальное ... сам бы не отказался от решения ...
2Genzzz просто мысль ... а что если параллельно с сервером будет висеть прога, которая допустм на время соединения клиета будет менять его пароль ... тогда никто под этил логином не соедениться ... после отключения пользователя прога вернет пароль в исходное состояние ...
← →
Johnmen (2003-02-16 01:53) [71]Потрясающее упрямство в нежелании понимать сущность коннекта и юзера....:(
← →
Genzzz (2003-02-18 00:26) [72]Johnmen, я то понимаю. А вот если бы вы прочитали мои посты - может тоже поняли...
sndanil, интересно. Гиморно, но интересно... единственное, можно ли будет сменить пароль юзера, если он в системе ? надо проверить...
← →
Genzzz (2003-02-18 00:28) [73]sndanil, опять же - это только препятствие для доступа к базе... Хотя уже хорошо =)
Но идеально было бы знать когда кто-нибудь пытается использовать чужой логин...
← →
Johnmen (2003-02-18 09:24) [74]>Genzzz (18.02.03 00:26)
>...я то понимаю.
Следующая фраза однозначно доказывает обратное :
> (18.02.03 00:28)
>Но идеально было бы знать когда кто-нибудь пытается
>использовать чужой логин...
Поясню - невозможно (!) определить использование челом чужого логина ! :)
← →
Соловьев (2003-02-18 09:47) [75]2 Genzzz
Ты уже полмесяца(!) стоишь, а мог сделать как я посоветовал
>>Соловьев © (27.01.03 15:42). Я сделал и не жалею, можно контролтровать как угодно: и по количеству коннектов, и по нику, и по пасворду.
← →
Reindeer Moss Eater (2003-02-18 09:47) [76]Но очень хочется :)
← →
NDeu (2003-02-18 12:52) [77]2 Genzzz
Давайте уточним задание
1. У тебя есть база на сервере(IB6) и клиентское ПО.
2. У тебя есть один или несколько BDадминов.(Они как Зевс. Им позволено все. Они знаят как свой пароль беречь)
3. У тебя есть несколько операторов на клиентское ПО ( Тетки, которые свой пароль клеят на мониторе, чтоб не забыли :)
Тебе нужно чтоб с пароль тетки, никто и никак не мог свезатся с сервера, даже с посторонным ПО (напр. IBConsole).
Решение
1.Создай юзер Application с свой пароль.
2.Этот пароль дай клиентскому ПО (в Registry или *.ini, лучше криптовано). Приложение конектикся к сервера под этот юзер Application.
3.Создай в базе табл. MyUsers, где записываеш UserName, Password, Permitions, IsConeccted и т.д. и т.п. что твоя душа захочет.
4.Запрашивай тетки за пароль, и сравнивай с запис в MyUsers. Эсли так хочется пиши логов в LogFile или LogTable.
Так пароль тетки не является пароль сервера и с этом никого и никогда не конектится.
С пороль админа можно сделать все (даже конектится сколко раз захочет), но так и надо.
Извини за плохого русского. Не родной :(
3.В базе
← →
Andrey (2003-02-18 13:33) [78]>можно ли будет сменить пароль юзера, если он в системе
Поменять можно. Это точно.
>параллельно с сервером будет висеть прога, которая
>допустм на время соединения клиета будет менять его пароль
Паралельно это конечно можно, но как часто она будет проверять кто подключился, кто отключился. Раз в час, минуту, секунду, а это достаточная частота? А не перегрузит ли такая частота сервер? Короче минусов много. Есть конечно решение 3-х звенка, но IMHO это не та проблемма которая требует столь радикальной перепланировки 2-х уровневых систем.
Я тоже этот вопрос исследовал. Нет в IB такой возможности. Единственное естественное (выполненяемое не извратами на клиенте, а непосредственно сервером) решение это перекомпиляция IB... Скоро, через 1-2 месяца я этим вплотную займусь.
Тогда можно решить и более сложную (мою) проблемму: 1 коннект к 1 базе для 1 хоста.
← →
Genzzz (2003-02-18 20:53) [79]NDeu, идея просто замечательная. Но ты хочешь, чтобы Application был админским аккаунтом ? Имхо, это серьезное нарушение безопасности. Где бы я его и как не хранил - хранить аккаунто администратора на компьютере...
Johnmen, вы очень хорошо все пояснили. Только я вас уверяю. Сделать можно все, ЧТО УГОДНО. Если вы не знаете как - это ничего не значит
← →
Johnmen (2003-02-19 09:33) [80]>...Если вы не знаете как - это ничего не значит
Да. Я ничего не знаю о том, знаешь ли ты, что я знаю о твоих знаниях и пониманиях...Но это ничего не значит...
Страницы: 1 2 3 вся ветка
Форум: "Базы";
Текущий архив: 2003.03.24;
Скачать: [xml.tar.bz2];
Память: 0.61 MB
Время: 0.011 c