Делаю приложение с помощью которого можно управлять базой данных, а именно: создавать таблицы, создавать и удалять строки и всё что с этим связанно.
Для этого пользователь заполняет форму: host, port, name, user, password, эти данные отправляются на мой сервер и я подключаюсь к этой самой базе данных.
Проблема в том, что любое взаимодействие с БД происходит через мой сервер, на мой взгляд это раздувает моё приложение. Возможно ли и правильно ли управлять базой данных через клиент? Напрямую из браузера пользователя?
Управлять базой из клиента (браузера) совершенно нормально. Яркий тому пример - phpMyAdmin или Adminer.
Но ваш кейс мне непонятен. Что означает "Делаю приложение с помощью которого можно управлять базой данных". В каком виде это приложение доставляется пользователю?
Проблема в том, что любое взаимодействие с БД происходит через мой сервер
Это действительно проблема. Я, например, ни за чтобы не доверил доступы к своей базе левому сервису. Это первое. И второе. Доступ к базе часто ограничен локальным айпи. И ваш сервис просто не сможет к ней подключиться.
В каком виде это приложение доставляется пользователю?
По факту это академический интерес, нежели реальное приложение.
Меня интересует вопрос правильности такой реализации и вопрос безопасности.
Если человек в любом случае вводит данные своей БД в форму, то какая разница в каком месте выполнять подключение на сервере или на клиенте.
Если разницы нет, то и сервер бессмысленно делать.
Я делаю злой скрипт и подсовываю его вашему клиенту считываю host, port, name, user, password
И угадайте в каких извращенных формах я надругаюсь над базой?
Возможно, если сама СУБД будет давать необходимый API для веб клиентов (который не будет работать из коробки, нужны определенные действия по настройке со стороны администратора СУБД).
Яркий пример - Oracle REST Data Services.
Но не каждый производитель СУБД заморачивается над разработкой подобных сервисов. Главное, чтобы самые популярные среды разработки серверных приложений имели необходимое расширение или драйвер, чтобы подключаться к СУБД на стороне сервера. Остальное - головная боль прикладных разработчиков.