Итак, как подсказывает заголовок - мне нужно создать приложение (предпочтительно Spring Boot), которое будет создавать схемы и таблицы на основе пользовательского ввода. В основном, конечная точка отдыха будет предлагаться клиентам, где они будут загружать свою модель данных в формате json. Я буду разбирать JSON и создавать артефакты БД (схемы и таблицы) во время выполнения. И как только все таблицы созданы, предоставьте клиенту конечную точку отдыха (с уникальным идентификатором) для выполнения операций CRUD над своей схемой.
Подход, который я рассматриваю в настоящее время -
Создайте суперпользователя в БД, прежде чем развертывать приложение, которое будет иметь полномочия для создания новых схем, и БД
Создание подготовленных операторов для запуска создания схемы / таблицы по требованию. Подготовленные операторы будут иметь заполнители, чтобы взять имя схемы и определение таблицы.
После надлежащей аутентификации разрешите пользователям загружать свои определения модели данных в json.
Очистите json и вызовите подготовленные операторы создания схемы / таблицы.
Несколько вопросов, которые я имел в виду -
Поскольку все эти операции с БД будут вызываться из одной учетной записи суперпользователя, это безопасно?
Схемы и таблицы будут реализованы с использованием собственных запросов SQL вместо возможностей ORM в Hibernate. Это безопасно / эффективно?
Можно ли для операций CRUD переключить соединение БД с суперпользователя на клиентскую схему, созданную на предыдущих этапах? Или я должен продолжать использовать того же суперпользователя для операций CRUD?
Было бы неплохо, если бы можно было переключать схемы во время выполнения с помощью Hibernate / Spring-Boot.
Что мне хотелось бы, так это общий подход к этой проблеме. Мне не нужен код .