| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > Подключение к удаленной БД |
| Автор: Sarkaznik 15.8.2010, 13:50 |
| Допустим есть сайт А где лежат файлы сайта и сайт Б на чьем хосте лежат БД (MySQL) задача, НЕ!!! указывая прямые пути, логин, пароля, в файле конекта сайта А к базам данных сайта Б, все же получать к ним доступ ? То есть нужно настроить так файл подключения сайта А к БД сайта Б что бы хозяин сайта А при желании покапавшись в своем сайте - не получил в свое распоряжения пароли и логины напрямую к БД сайта Б. |
| Автор: skyboy 15.8.2010, 16:25 |
| обязательно "прямой" доступ как возможность выполнять произвольные запросы на удаленной БД? или все же список допустимых действий ограничен явно? |
| Автор: Sarkaznik 15.8.2010, 17:06 | ||
первый вопрос не понял формулировку! допустимые действия ограничены! я просто не знаю как объяснить еще яснее, у меня есть заказчик сайта, сайт ему написан допустим, но! есть информация которую я выгружаю к нему на сайт из свой БД на своейм хостинге, для того что бы выгружалась инфа к нему на сайт щас в файле конекта его сайта прописаны пути к моей БД базы логины и пароли, логично что я не хочу отдавать ему сайт с такой информацией на борту... так вот: 1. КАК мне и главное что прописать в его файле конекта что бы информацию он с моих БД получал на сайт, но при этом он не знал прямых путей, логинов, паролей к моим БД ?? 2. как и опять же главное что прописать, что бы допустим некоторые действия удаленные к моей бд были не полными, допустим разрешено добавление новых данных, запрещено удаление существующих и т.д. реализовать это можно опять же лишь по средством прав созданной учетке на моем хостинге к бд или возможны другие варианты ? что делать если учетка на хостинге вообще одна, ну не дает хостер больше одной скажем ? 3. Если быть точнее то получатель информации с моей бд - в перспективе не один, уже как минимум два сайта, мне по сути надо защитить свою бд от проникновения, ну и ограничить некоторые права, в общем все.. знаю про файлик my.cnf суть настройки в нем тоже в общем понятна, но по средством его я могу лишь назначит порт и ip с которых разрешен/запрещен конект, имеет ли он возможность настройки прав пока не понял... |
| Автор: skyboy 15.8.2010, 19:42 |
| я уже понял тебе, а теперь объясню свой вопрос: положим, у тебя есть удаленная база-справочник предприятий. и есть клиент. если данные, которые может запросить клиент, никак не ограничены - фильтрация, сортировка, группировка и прочее, то есть дать возможность выполнять запросы SQL напрямую - единственный вариант, то рациональным, с моей точки зрения решением будет новый пользователь БД с ограничениями в правах(естественно, у клиента логин/пароль будут храниться в явном виде) и для усиления безопасности ограничить подключение одним IP. если запросы клиента - ограниченное множество, то можно вместо прямого подключения клиента в твоей БД реализовать какой-то протокол обмена "запрс-данные" в отрыве от SQL. Например, SOAP или "простой" XML. Или даже CSV. Пример: клиент делает запрос на адрес "твой-сервер/get_items_list.php?filter=A", а РНР скрипт вернет в виде списка текстом все элементы, которые начинаются на "А". Или ещё как. В твоем варианте(ограничение на количество пользователей БД и прочие ограничения) я бы рекомендовал второй вариант. |
| Автор: Sarkaznik 15.8.2010, 21:07 |
| skyboy, уточню 1 вариант твой это путем создания нескольких пользователей бд (1й - админ, 2й - скажем Юзер (без прав удаления и редактирования и т.д.)) далее в my.cfg на свой хосте я прописываю ип сайта клиента и даем ему доступ тем самым к бд а в файле конект сайта клиента я прописываю пусть, пасс с логином (Юзера) к моей бд если все так - то вопрос такой, допустим сайтов 3-5 + смогут ли они все ходить под одним логином (Юзера) к моей бд, при условии конечно что я пропишу им доступ по ip всем... или для каждого сайта создавать отдельный логин, как это сможет отобразиться на скорости обработки данных ? |
| Автор: OlgaNaft 17.8.2010, 18:53 |
| Ограничение по IP на хосте-доноре (где расположена БД) - самы оптимальный вариант в данной ситуации! |
| Автор: Sarkaznik 18.8.2010, 22:37 |
| ограничение в рамках my.cnf все понятно теперь вопрос такой, кто имел дело с Zend или что то может пояснить ? интересно собственно его конкретная часть пою проблему Zend Guard (ранее назывался Zend Encoder) — позволяет закодировать скрипт в байт-код, который потом можно использовать точно также как и обычный, за исключением возможности его отредактировать. |