2009-12-11 5 views
1

Я создаю приложение C++, которое использует базу данных MySQL. Я хотел бы, чтобы приложение создало учетную запись для себя, если это возможно. Я не нашел метода для этого.Приложение, создающее учетную запись пользователя в MySQL

Каждый раз, когда я переношу свое приложение, я забыл настройку последовательности. Текущая последовательность настройки требует создания учетной записи в MySQL для использования приложения. После того, как приложение имеет учетную запись и привилегии, оно может создать базу данных и настроить таблицы.

Кроме того, это будет немного раздражать моих конечных пользователей. Мое приложение было бы проще использовать, если приложение могло выполнить всю настройку.

В примерах я нашел все состояния для создания учетной записи пользователя в MySQL, прежде чем запускать приложение. Обычно указывается, как создать учетную запись с помощью приложения командной строки MySQL. Но я хочу, чтобы мое приложение создало собственную учетную запись в MySQL.

Я использую Visual Studio 2008, язык C++ и MySQL Connector C++ 1.0.5. Платформа - Windows XP или Vista. Коннектор использует аналогичный API для Java JDBC API. Я приму примеры в Java или C++.

К сожалению, у меня были проблемы с использованием ODBC, так что это не может быть и речи.

Спасибо.

+1

Как ваше приложение создаст учетную запись в базе данных MySQL, не используя учетную запись, у которой есть разрешение на это? Другими словами, вам нужны учетные данные учетной записи с разрешениями для создания учетных записей для создания учетных записей. – delfuego

+0

Итак, кажется, что я должен сообщить Пользователю, что им нужно создать учетную запись для моего приложения с соответствующими привилегиями. Я должен сделать это в большом окне с инструкциями. –

ответ

1

У вас есть chicken or the egg problem здесь. Вы не можете создать учетную запись базы данных, не имея учетных данных, необходимых для входа на сервер и создания другой учетной записи для вашего приложения.

Кроме того, пользователям очень часто приходится предоставлять учетные данные учетной записи базы данных во время установки/установки, даже если это «раздражает». Если ваше приложение зависит от базы данных, от пользователей следует ожидать, что они будут иметь дело с сервером базы данных и параметрами учетных данных самостоятельно.

К сожалению, клиенту базы данных (JDBC/ODBC) и языку (Java/C++) не относится к вашей дилемме.

Если вам нужна только легкая внутренняя база данных для вашего приложения, возможно, вам стоит заглянуть в SQLite embedded database вместо MySQL. Это позволит вашей базе данных приложений автономно работать без какой-либо настройки пользователя.

+1

Моя цель состоит в том, чтобы мое приложение использовало любую базу данных, которую Пользователь имеет в своей системе. Я начинаю с MySQL, потому что он бесплатный. Кроме того, я могу избежать проблем с лицензированием, не выпуская MySQL в свой дистрибутив. –

+0

Да, это совершенно разумно, необходимо и общепринято для того, чтобы потребовать от пользователя предоставить вашему приложению некоторые учетные данные базы данных во время установки/установки. –

+2

Поскольку вы упоминаете об избежании проблем с лицензированием, MySQL Connector C++ 1.0.5 также лицензируется под лицензией GPL, и если вы используете его как адаптер, насколько мне известно, ваше программное обеспечение также становится GPL. –

1

Возможно, вместо включения создания учетной записи в приложение вы можете включить ее в свою настройку. По мере запуска вашей установки он также может запустить описанный процесс для создания или использования учетной записи.

Если это кажется неудовлетворительным, возможно, ваши инструкции по установке могут детализировать процесс создания учетной записи.

1

Вы можете создать учетную запись и таблицы и ... все из SQL-запроса.

Во-первых, сделайте учетную запись по умолчанию, которая имеет достаточно привилегий для создания нового пользователя/таблицы/базы данных, но недостаточно для того, чтобы сжечь место.

Во-вторых, когда пользователь запускает ваше приложение, на задней панели ваша программа регистрируется в базе данных MySQL и отправляет SQL-запрос в базу данных MySQL для генерации нового пользователя/таблицы/базы данных.

В-третьих, ваше приложение выходит из учетной записи по умолчанию и во вновь созданную учетную запись.

Если вы делаете что-то похожее на это, обязательно рассмотрите возможные проблемы безопасности.

+0

Я понимаю, что вам нужна учетная запись в базе данных {server} для выдачи SQL-команд. –

+1

Сервер * И учетная запись * (у которой есть разрешения на выпуск SQL-команд для создания учетных записей) –

Смежные вопросы