Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/64: Рейтинг темы: голосов - 64, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 24.02.2019
Сообщений: 11

Выбор инструментов для создания веб-интерфейса для доступа к базе данных

24.02.2019, 16:03. Показов 14068. Ответов 18

Студворк — интернет-сервис помощи студентам
Доброго времени суток.

Пролог: вопросы в конце, так как без предисловия и объяснения я их не мог задать корректно.

Перейду сразу к сути, у меня летом защита диплома и тема диплома следующая: "Создание веб-интерфейса для доступа к базе данных". В общем мне необходимо создать что-то на подобии phpMyAdmin, но не такое сложное. И такое решение уже есть - Adminer. Поэтому мне пришлось в последнее время очень много читать информации по каждому решению, которые сейчас есть, чтобы более подробно разобраться в особенностях каждого решения и выделить для себя нужное.

Я выделил следующие решения и выписал только их основные отличия на мой взгляд:
Бесплатные, с открытым кодом:
- Adminer
Легковесный, поддерживает множество баз данных (MySQL, PostgreSQL, MS SQL, SQLite, Oracle).
- phpLiteAdmin
Самый легковесный, поддерживает только SQLite.
- phpMyAdmin
Поддерживает MySQL и MariaDB.
Имеет огромный функционал для менеджмента баз данных.
Самый распространенный и имеет огромное количество информации по настройке и доработке.
- PgAdmin 4
Поддерживает только PostgreSQL и полноценно нацелен именно на эту базу данных.
Написан на Python, в отличие от других решений, написанных на PHP.
Может работать как кроссплатформенное приложение на рабочем столе, так и через браузер.

Платные:
- DaDaBIK;
Интуитивное понятное и простое решение, но явно не для менеджмента именно баз данных, а больше как готовое решение для создания интерфейсов с нужным функционалом. То есть мы можем создать какое-то внутреннее приложение для компании, чтобы заносить в базу данных клиентов, но оно будет гораздо проще и только с нужными функциями для простых пользователей (добавить, ввести данные и отправить). Грубо говоря этакий графический фреймворк для создания приложения для доступа к базе данных, нацеленное на бизнес решения.
Поддерживает множество баз данных за счет PDO.
- Oracle Enterprise Manager
Комплекс из инструментов для администрирования баз данных. Опять же больше для бизнес решений.
Плюсов особо не нашел, так как очень сложно найти точную информацию в открытых источниках об этом решении.

Выводы я сделал следующие:
- Основной особенностью веб-интерфейса должна стать безопасность, так как легковесность при таких сроках разработки как ни крути будет сама по себе и огромного функционала вряд ли в такие сроки получится добиться.
- Интерфейс должен быть современным и интуитивно понятным.
- Должна быть реализована поддержка множества баз данных по средствам PDO.

Вопросы из всего вышеперечисленного следующие:
- Какой PHP фреймворк мне стоит выбрать для решения этой задачи, либо стоит ли вообще его использовать, возможно будет лучше делать все "from scratch"?
Пока что я все же склоняюсь к написанию с нуля, но боюсь, что могу не успеть. С другой стороны, пока я буду изучать фрейморк, возможно уйдет столько же времени, сколько и при написании с нуля.
- Для улучшения безопасности хочу использовать двухфакторную аутентификацию, поэтому желательно найти такое решение, которое предусматривает возможность интеграции такого механизма. Может быть кто-то знает о таких решениях?
- Есть ли у вас какие-либо предложения / мысли по данной задаче? Для меня это важно, так как на данный момент полная путанница в голове из-за того, что я не могу определиться с решением.

Буду рад, если вы мне сможете помочь в решении данных вопросов.
Заранее спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.02.2019, 16:03
Ответы с готовыми решениями:

Laravel для создания веб-интерфейса для доступа к базе данных
Доброго времени суток. Вопрос следующий: насколько хорошо Laravel подойдет для создания веб-интерфейса для доступа к базе данных?...

Какие нужны знания для создания веб-интерфейса для базы данных?
Есть БД, есть ПО для доступа к ней. ПО неудобное и пишется на стороне, хочется написать свой вэб-интерфейс для доступа к базе Что вообще...

Интерактивная анимация: выбор инструментов для создания
Здравствуйте уважаемый Как можно сделать интерактивный 3D. на пример такой ...

18
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
24.02.2019, 16:42
Веб интерфейс для доступа к бд - вещь бесполезная чуть более чем полностью. Держать и выполнять лишний код на сервере - только дополнительные ненужные затраты. И еще это очень неудобное решение: проблемы с экспортом/импортом данных из-за ограничений по максимальному размеру тела запроса и времени выполнения как на стороне веб сервера, так и php, невозможность единой транзакции на несколько запросов.
По поводу безопасности - самое безопасное это не открывать бд никаким способом. ssh тунель с авторизацией по ключу, и если захочется то и 2fa можно добавить. И получается что на сервере будет сама субд и ssh, на клиентской машине ssh клиент и нормальный бд клиент.
0
0 / 0 / 0
Регистрация: 24.02.2019
Сообщений: 11
24.02.2019, 17:07  [ТС]
Jewbacabra, спасибо за ответ.

Тема предусматривает создание именно веб-интерфейса, поэтому не создавать его я не могу.

Ваша идея меня надолкнула на мысль о том, что можно создать веб-интерфейс для доступа к серверу с субд по ssh. Однако тут есть свои минусы, так как пользователь во-первых получает доступ не только к субд, но и к самой машине (можно конечно настроить права и т.д.), а во-вторых это получится уже не веб-интерфейс, а просто веб-консоль для доступа к машине и пользователь не сможет управлять базой данных только мышкой, ему придется использовать команды и соответственно их знать.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
24.02.2019, 17:29
Цитата Сообщение от stefanitsky Посмотреть сообщение
это получится уже не веб-интерфейс, а просто веб-консоль для доступа к машине и пользователь не сможет управлять базой данных только мышкой, ему придется использовать команды и соответственно их знать.
во-первых непонятно кто запрещает приделать графический интерфейс, и во-вторых как этот графический интерфейс избавляет от необходимость "знать команды".
И в-третьих непонятна вообще привязка в ssh. Используя ssh-тунель можно использовать абсолютно любой клиент, который может и понятия не иметь о существовании данного протокола.
0
0 / 0 / 0
Регистрация: 24.02.2019
Сообщений: 11
24.02.2019, 18:16  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
во-первых непонятно кто запрещает приделать графический интерфейс, и во-вторых как этот графический интерфейс избавляет от необходимость "знать команды".
И в-третьих непонятна вообще привязка в ssh. Используя ssh-тунель можно использовать абсолютно любой клиент, который может и понятия не иметь о существовании данного протокола.
Я имел ввиду, что интерфейс избавляет от необходимости знать команды SQL, то есть пользователь может поменять что-то в базе данных вручную, создать ее или удалить, к примеру. То есть в интерфейсе предусмотрен такой функционал, чтобы пользователь мог управлять субд визуально, не используя команды SQL.

То есть, если я правильно понял, то мне необходимо будет реализовать веб-интерфейс, который будет работать с базой данных не через стандартные методы для подключения к базе данных и отправке SQL комманд, а будет подключаться по SSH сначала к серверу, а потом и к субд и отправлять консольные команды, а затем обрабатывать вывод этих команд, верно?

К примеру для отображения списка всех баз данных в субд будет что-то вроде:
PHP
1
2
3
4
5
6
7
8
9
10
$connection = ssh2_connect('localhost', 22);
ssh2_auth_password($connection, 'username', 'password');
$command_connect = ssh2_exec($connection, 'mysql -u username -p');
$command_password_enter = ssh2_exec($connection, 'password');
// Проверяем вывод (подключились ли к базе данных или нет, верный ли пароль и т.д.)
Проверка
// Если подключились, то получаем список баз данных
$command_get_databases = ssh2_exec($connection, 'SHOW DATABASES;');
$command_out = ssh2_fetch_stream($command, SSH2_STREAM_STDIO);
echo stream_get_contents($command_out);
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
24.02.2019, 18:27
Цитата Сообщение от stefanitsky Посмотреть сообщение
Я имел ввиду, что интерфейс избавляет от необходимости знать команды SQL
Если пользователь не знает sql, то нечего его в бд подпускать.
Цитата Сообщение от stefanitsky Посмотреть сообщение
То есть, если я правильно понял, то мне необходимо будет реализовать веб-интерфейс, который будет работать с базой данных не через стандартные методы для подключения к базе данных и отправке SQL комманд, а будет подключаться по SSH сначала к серверу, а потом и к субд и отправлять консольные команды, а затем обрабатывать вывод этих команд, верно?
Это полная дичь. Получается усложнение системы с сохранением всех недостатков обычных веб-интерфейсов, и кроме того воспользоваться преимуществом ssh тунелей не удастся.
0
0 / 0 / 0
Регистрация: 24.02.2019
Сообщений: 11
24.02.2019, 19:16  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Это полная дичь. Получается усложнение системы с сохранением всех недостатков обычных веб-интерфейсов, и кроме того воспользоваться преимуществом ssh тунелей не удастся.
Тогда я не совсем понимаю, как это реализовать.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
24.02.2019, 19:31
Цитата Сообщение от stefanitsky Посмотреть сообщение
Тогда я не совсем понимаю, как это реализовать.
https://habr.com/ru/post/331348/
0
0 / 0 / 0
Регистрация: 24.02.2019
Сообщений: 11
24.02.2019, 21:15  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
https://habr.com/ru/post/331348/
Спасибо за информацию, но мне кажется, что это какой-то сложный вариант, должно же быть более простое решение...
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
25.02.2019, 15:42
Цитата Сообщение от stefanitsky Посмотреть сообщение
должно же быть более простое решение
Простые решения уже придуманы) Можете конечно писать клон adminer и phpmyadmin, но как потом будете защищаться я хз.
0
0 / 0 / 0
Регистрация: 24.02.2019
Сообщений: 11
25.02.2019, 15:50  [ТС]
Цитата Сообщение от tarasalk Посмотреть сообщение
Простые решения уже придуманы) Можете конечно писать клон adminer и phpmyadmin, но как потом будете защищаться я хз.
Вот в этом то и проблема, что я не могу придумать то, чем моя работа будет в лучшую сторону отличаться от существующих...

При этом это должно быть просто, иначе разработка может затянуться.
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
25.02.2019, 19:12
stefanitsky, если это для диплома и нужно что-то придумать лишь бы придумать, можно сделать ставку на адаптивность интерфейса, чтобы на мобильных и планшетах интерфейсом был приятно пользоваться.

Сам интерфейс можно сделать на bootstrap.
1
0 / 0 / 0
Регистрация: 24.02.2019
Сообщений: 11
25.02.2019, 19:52  [ТС]
Цитата Сообщение от Jodah Посмотреть сообщение
stefanitsky, если это для диплома и нужно что-то придумать лишь бы придумать, можно сделать ставку на адаптивность интерфейса, чтобы на мобильных и планшетах интерфейсом был приятно пользоваться.
Сам интерфейс можно сделать на bootstrap.
Спасибо за совет.

Я уже стал немного определяться с конечной целью, остановился пока что не фреймворке Laravel. В нем и bootstrap хорошо интегрирован, и ssh туннелирование можно добавить как предлагал Jewbacabra. Да и в целом в нем множество встроенных механизмов для защиты (SQL injections, cookies, CSRF и т.д.).

В общем акцент работы думаю сделать на том, что буду использовать современные средства разработки, которые в свою очередь более защищенные и предоставляют адаптивный интерфейс на практически любом устройстве, где есть браузер.
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
25.02.2019, 20:46
Мне кажется вы вообще не о том думаете. Самое главное это идея, а вы все о инструментах типа фреймворка думаете. Нарисуйте макеты какие-нибудь, пропишите основной функционал, от этого уже можно отталкиваться.

Монструозный ларавел здесь вообще не нужен. 99% процентов от него вы не используете. Зато заставите пользователя качать тонны кода и мучиться с установкой.
Bootstrap подключается в 2 строчки.
Инъекции, CSRF итп не нужны, вы и так юзеру всю БД предоставляете. Авторизация, проверка ролей все это в БД есть.
С SSH сложнее, мне кажется если на каждый запрос поднимать новый коннект то это мягко говоря не очень.
1
0 / 0 / 0
Регистрация: 24.02.2019
Сообщений: 11
25.02.2019, 20:55  [ТС]
Цитата Сообщение от tarasalk Посмотреть сообщение
Мне кажется вы вообще не о том думаете. Самое главное это идея, а вы все о инструментах типа фреймворка думаете. Нарисуйте макеты какие-нибудь, пропишите основной функционал, от этого уже можно отталкиваться
Это есть, да вот только мне это ничего не дает, так как интерфейс должен привнести что-то новое и отличаться от других, а не быть бесполезной копией.

Цитата Сообщение от tarasalk Посмотреть сообщение
Монструозный ларавел здесь вообще не нужен. 99% процентов от него вы не используете. Зато заставите пользователя качать тонны кода и мучиться с установкой.
Установка заняла у меня примерно минут 10, при том что ранее с фреймворками PHP и самим composer'ом я не сталкивался и не пользовался. Так что это спорно.

Цитата Сообщение от tarasalk Посмотреть сообщение
Инъекции, CSRF итп не нужны, вы и так юзеру всю БД предоставляете. Авторизация, проверка ролей все это в БД есть.
Я имел ввиду то, что сам по себе фреймворк предоставляет возможности для защиты от несанкционированного доступа именно в саму панель управления.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
25.02.2019, 21:49
Цитата Сообщение от stefanitsky Посмотреть сообщение
ssh туннелирование можно добавить как предлагал Jewbacabra
Я такого не предлагал. Я лишь рассказал про самый простой способ взаимодействия между закрытым от внешнего мира удаленным бд сервером и клиентом, который предполагает ssh тунель от клиента до сервера, и промежуточные звенья всю эту структуру портят.
Цитата Сообщение от stefanitsky Посмотреть сообщение
SQL injections
Сам проект предполагает выполнение произвольного запроса от пользователя, такого типа угроз в данной задачи нет
Цитата Сообщение от stefanitsky Посмотреть сообщение
cookies, CSRF
Прямое взаимодействие сервер бд - клиент не имеет данных уязвимостей, они приходят как только появляется звено в виде http. И получается ситуация, что сначала внесли дополнительные угрозы, а потом героически с ними боремся. В web проектах защита от данных уязвимостей должна быть по-умолчанию, и наличие такой защиты нельзя считать преимуществом.

Добавлено через 13 минут

Не по теме:

Помню лет 5 назад хостер godaddy предлагал для работы с бд использовать phpmyadmin. И доступен он был по uri типа https://10.10.10.10:8888/bla-bla-bla. Да, именно ip без какого либо домена и как следствие с самоподписанным сертификатом. И о какой безопасности там вообще была речь?

1
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
25.02.2019, 22:05
Цитата Сообщение от stefanitsky Посмотреть сообщение
Это есть, да вот только мне это ничего не дает, так как интерфейс должен привнести что-то новое
У вас есть идея которая ничего не дает? Так я же об этом и говорю, надо идею продумать, а не на фреймворки кидаться, они вам ничего не дадут. Новички часто думают что мол щас как заюзаю php7, laravel, spa на react и все в докере... так сразу супер проект получится)
Цитата Сообщение от stefanitsky Посмотреть сообщение
Установка заняла у меня примерно минут 10
Установка чего? Пустого каркаса ларавел на локалке? У меня тоже так вначале было. А сейчас при каждом деплое собирается докер, качаются куча зависимостей, собираются, заливается в облако... по несколько раз в день, отдельно тестинг и продакшен. В общем времени уходит много.
Не ну можно конечно и так, но это уже не простенький проект получается, функционал должен быть весьма мощным чтобы оправдать все это.

Не по теме:

Цитата Сообщение от Jewbacabra Посмотреть сообщение
для работы с бд использовать phpmyadmin. И доступен он был по uri типа https://10.10.10.10:8888/bla-bla-bla
А у нас так было, тоже давно) И не взломали. Помню еще студентом на парах нужно было срочно что-то поправить, так я прям с телефона заходил на бд и правил)))

0
0 / 0 / 0
Регистрация: 24.02.2019
Сообщений: 11
26.02.2019, 10:11  [ТС]
Цитата Сообщение от tarasalk Посмотреть сообщение
У вас есть идея которая ничего не дает? Так я же об этом и говорю, надо идею продумать, а не на фреймворки кидаться, они вам ничего не дадут. Новички часто думают что мол щас как заюзаю php7, laravel, spa на react и все в докере... так сразу супер проект получится)
Идея мне ничего не дает, так как она ничем не отличается от уже существующих решений.
0
0 / 0 / 0
Регистрация: 24.02.2019
Сообщений: 11
27.02.2019, 10:55  [ТС]
В итоге зря я так загонялся, все оказалось куда проще.
Бакалаврская работа не предполагает научную новизну, поэтому вопрос можно закрывать, будет достаточно просто создать интерфейс.

Всем спасибо за то, что откликнулись на помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.02.2019, 10:55
Помогаю со студенческими работами здесь

Выбор дизайнера для создания графического интерфейса
Здравствуйте! Что лучше выбрать при разработке интерефейсов? Т.е. какой дизайнер. Попробовал руками добавлять компоненты, это очень...

Выбор инструмента для создания графического интерфейса БД на Java
Добрый день! У меня возник вопрос: существует БД,которая была создана на Oracle Database. В ней присутствуют таблицы итд. Я хотел бы...

Выбор оружия для создания современного пользовательского интерфейса c запасом на будующее
Есть большой проект под Windows(порядка 15 Mб кода) на С++. Написан он на основе собственных библиотек. Теперь хочется отказаться от этих...

Разработка веб-интерфейса для базы данных
Здраствуйте, у меня скоро защита в Универе, и вот у меня тема "Разработка веб-интерфейса для базы данных" но я получил такую тему в...

Разработка Веб-интерфейса к базе данных с PHP MVC Web-Framework Symfony
Разработка Web-интерфейса к базе данных с помощью PHP MVC Web-Framework Symfony


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru