asker
|
|
« : 07-08-2006 06:36 » |
|
Ситуация такая: Есть 3 компа: 1 - сервер, на нем хранится нужная БД (MySQL) (находится в сети А); 3 - клиент, здесь пользователь генерирует запросы к базе (находится в сети Б); 2 - маршрутизатор (комп под управлением Unix), он должен перенаправлять запросы клиента к серверу (но не все подряд)
Можно ли такое сделать, и если да, то как.
|
|
|
Записан
|
С уважением, asker
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #1 : 07-08-2006 14:36 » |
|
А причём тут MySQL? MySQL работает по по протоколу TCP/IP, и этот протокол от MySQL никак не зависит. Тему надо перенести в раздел сети. Правильный вопрос: "Как настроить маршрутизатор?" комп под управлением Unix Очень я в этом сомневаюсь. Что именно: Linux, Solaris, HP-UX, какая-нибудь BSD - точнее говори, везде свои тонкости. (но не все подряд) Что это значит? Какие именно не должен? В общем случае (если клиент имеет прямой доступ к MySQL, а не через некий сервис, реализующий уровень скажем так "бизнес-логики"), это настраивается в правах доступа пользователей MySQL к объектам MySQL (например, таблицам). Маршрутизатор здесь к делу не относится. Маршрутизатор может лишь включать/выключать доступ для отдельных хостов из сети Б к серверу, но не фильтровать SQL-запросы в зависимости от их (запросов) содержания. Маршрутизация сети работает на 3-м уровне "сетевом" (согласно OSI-модели), MySQL - на 7-м "прикладном". И эти уровни друг с другом не связаны - если есть связь на 3-м уровне (можно установить сетевое соединение с MySQL), можно настраивать 7-й (авторизацию, права пользователей на выполнение запросов), если нет связи на 3-м уровне, 7-й вообще не работает.
|
|
« Последнее редактирование: 07-08-2006 14:44 от dimka »
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
asker
|
|
« Ответ #2 : 08-08-2006 05:00 » |
|
А причём тут MySQL? MySQL работает по по протоколу TCP/IP, и этот протокол от MySQL никак не зависит.
MySQL может быть и не причем, но установленное СУБД - MySQL. комп под управлением Unix Очень я в этом сомневаюсь. Что именно: Linux, Solaris, HP-UX, какая-нибудь BSD - точнее говори, везде свои тонкости. Насколько, мне известно комп под управлением freeBSD. (но не все подряд) Что это значит? Какие именно не должен? Запросы к "моей" БД маршрутизатор должен перенаправлять к серверу с "моей" БД, а все остальные на другой сервер (может быть я не совсем правильно выразился) Да, что значит клиент имеет прямой доступ к MySQL. Т.е. знает IP адрес сервера, на кот-ом БД, если да, то очень очень не хотелось бы чтобы клиент знал этот IP.
|
|
|
Записан
|
С уважением, asker
|
|
|
Антон (LogRus)
|
|
« Ответ #3 : 08-08-2006 05:11 » |
|
Т.е. знает IP адрес сервера, на кот-ом БД, если да, то очень очень не хотелось бы чтобы клиент знал этот IP.
Хм.. а как тогда осуществлять сепарацию запросов? Что и куда?
|
|
|
Записан
|
Странно всё это....
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #4 : 08-08-2006 05:27 » |
|
Запросы к "моей" БД маршрутизатор должен перенаправлять к серверу с "моей" БД, а все остальные на другой сервер (может быть я не совсем правильно выразился)
Да, что значит клиент имеет прямой доступ к MySQL. Т.е. знает IP адрес сервера, на кот-ом БД, если да, то очень очень не хотелось бы чтобы клиент знал этот IP. Если MySQL не имеет функции подзапросов к другим серверам и источникам данных (нечто, вроде linked servers в MS SQL Server), то такое штатными средствами сделать невозможно. В качестве решения можно создать некий сетевой сервис, который будет выступать в качестве дополнительного логического слоя приложения. Тогда все клиенты будут обращаться к сервису, исользуя предоставляемый им API, и не будут делать запросов к БД. Все запросы к БД будет делать этот сервис. Но скорее всего речь идёт о неправильной конфигурации среды. Объясни суть задачи и обоснуй, почему клиентам нельзя сообщать IP MySQL именно с твоей БД. Чем она такая секретная? Почему разнесены БД по разным серверам? Решения каких проблем ты этим хочешь добиться?
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #6 : 08-08-2006 16:47 » |
|
Тогда в перспективе (когда версия станет стабильной) возможно поставить прокси-MySQL - он сам определит, к каким БД (или таблицам) обращаются, и перенаправит запросы куда нужно. Но права, опять же, настраиваются в MySQL, а не на уровне маршрутизатора сети.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
RXL
|
|
« Ответ #7 : 08-08-2006 18:18 » |
|
asker, ты можешь выразить смой вопрос точно? Чтобы не гадали, в чем же он заключается...
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
asker
|
|
« Ответ #8 : 09-08-2006 03:49 » |
|
Ситуация такая: Есть технологическая машина, на которой должна быть БД по управлением СУБД MySQL. Эта технол. машина и есть сервер, кот-ый находится в сети A, он не имеет прямого выхода в интернет, данная сеть находится за двумя маршрутизаторами а то и больше...
Данной сети А свыше выделен один ИП из сети Б, сети Б в свою очередь так же выделен ИП с прямым выходом в инет(DSL-модем), в сетях А и Б поднят NAT, в сети Б на сервере который имеет два интерфейса поднят HTTP-сервер на котором должен крутиться сайт, который будет формировать запросы к базе данных, которая находится на компе из сети А, за маршрутизатором(FreeBSD 4.11).
|
|
|
Записан
|
С уважением, asker
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #9 : 09-08-2006 04:38 » |
|
asker, дак тебе что нужно? Чтобы технологическая машина была защищена от доступа из интернета? Для этого сетевого маршрутизатора достаточно - ведь сеть Б - локальная сеть. Движок сайта (как единственный пользователь) через логин-пароль будет иметь доступ к MySQL, и всё - случайные пользователи из твоей сети Б доступа к MySQL на тех.машине иметь не будут, а из интернета никого в локальную сеть маршрутизатор на выходе в интернет не допустит.
|
|
« Последнее редактирование: 09-08-2006 04:40 от dimka »
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
asker
|
|
« Ответ #10 : 14-08-2006 07:57 » |
|
Извините за отсутствие, ко мне родственики приехали, выдалась минутка. Я обдумаю то, что ты сказал. Может ты и прав, и мы выдумали проблему там где ее нет... Попробую... Спасибо, dimka
|
|
|
Записан
|
С уважением, asker
|
|
|
|