Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

SQLConnection. Как узнать пароль.   Найти похожие ветки 

 
sas-koval   (2010-09-20 00:35) [0]

Добрый день.
Использую dbExpress для подключения к mysql серверу.
Для SQLConnection1 указываю
LoginPrompt = True , по русски говоря — запрашивать авторизацию перед подключением.
При подключении выскакивает окошко, где юзер вводит логин/пароль и жмёт ОК.

Вопрос в том, как мне получить логин/пароль, который ввёл пользователь?
Мне это нужно для бекапа. Чтоб непосредственно из программы запускать утилитку mySQLdump, где в качестве ключа нужно указывать логин/пароль.

Или может кто подскажет более умный метод ежедневно автоматически создавать backup файлы базы данных?
Варианты типа SELECT ... INTO OUTFILE "file_name" не подходят потому, что бекап создаётся на сервере, а не на компьютере клиента.

Параметр SQLConnection1.Params.Values["Password"] при этом, похоже, не учавствует. т.е. не берётся значение из этого параметра и туда не передаётся.

И ещё...
Этап подключения происходит во время инициализации (создания) TForm1
т.е. создать свой Form2 для введения логина/пароля и вызвать его перед подключением — не выходит. или просто "я не шарю..."

Подскажите.... добрый люди.


 
Anatoly Podgoretsky ©   (2010-09-20 07:38) [1]

> sas-koval  (20.09.2010 00:35:00)  [0]

Какой хитрый способ украсть пароли, албанский хакер аднака.


 
sniknik ©   (2010-09-20 08:08) [2]

> Или может кто подскажет более умный метод ежедневно автоматически создавать backup файлы базы данных
настроить "job" на сервере, в самом MySQL, если там это есть (по аналогии с MSSQL), что-то подобное должно быть.
если нет, то написать программку для бекапов, с отдельными настройками, и запускать ее опять таки на сервере по расписанию, без привлечения клиентских прог.


 
sniknik ©   (2010-09-20 08:12) [3]

> по аналогии с MSSQL
ну, возможно, т.к. MySQL "пришел" из линукса возможно там другая идеология, типа скриптов выполняемых "демонами", но в общем смысл думаю понятен.
главное - никакого участия клиентов в бекапе.


 
sniknik ©   (2010-09-20 08:12) [4]

Удалено модератором
Примечание: дубль


 
Anatoly Podgoretsky ©   (2010-09-20 08:53) [5]

> sniknik  (20.09.2010 08:08:02)  [2]

Вот именно "если там оно есть"


 
Anatoly Podgoretsky ©   (2010-09-20 09:05) [6]

И мне кажется там его нет, там вроде бы идеология дампов и вроде бы делается отдельной программой. Но это нам автор расскажет.


 
sas-koval   (2010-09-20 22:09) [7]

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

про прогу.. в том то и дело, что не вздумал бы делать бекапы, пока не случился дикий случай...
mySQL сервер стоит на винде. база данных совсем небольшая (в пределах 10 мегабайт за 2 года работы). и при этом СЕРВАК под неё никто не выделяет. ставится обычно на маленьком ПК. И вот нашлись умельцы, которые начавшую глючить винду - просто снесли и поставили заново. Они конечно понимали, что там база крутится. К тому же не дураки были! и потому на всякий случай скопировали *.frm .... толку то...
Потому и возникла идея создавать бекап именно на клиентской части. хоть на каком-то клиентском компе бекап убережётся от вандализма.

Про бекапы в mysql.
они там делаются 3-мя принципиально различающимися методами:
1. отдельная прога mysqldump, которая созаёт файл, который содержит все необходимые команды, которые создадут и заполнять БД с нуля. т.е. типа "создать таблицу, вставить стоку 111" и так далее... недостаток метода - требуется пароль.
2. select * into outfile from table. при этом мы просто в текстовом файле получим ту выборку, которую попросили. её в дальнейшем возможно импортировать в таблицу. недостаток - файл формируется на сервере, а не на клиенте.
3. mysqlhotcopy database /path/to/some/dir
она просто копирует файлы БД (*.frm, *.MYD и *.MYI) в момент, когда не происходит обновлений данных, из которых как-то возможно восстановить базу.
недостаток - нужно запускать на сервере.

В общем подумав ещё немного я придумал такой вариант: в настройках самой программы иметь такую настройку, как пароль, который будет однажды вводиться пользователем и храниться в этой-же БД. в нужный момент я буду запускать mysqldump с этим паролем. чтоб пароль нельзя было просто достать из дампа, я буду ещё архивировать его с наложением пароля на архив. пока ничего умней придумать не успел :) или нужно почитать как по умному хранить пароль в БД от самой себя.

конечно... если бы это был линукс и база бы на нём крутилась посерьёзней, то дампы делались бы кроном и обычными скриптами. И врядли кто-то осмелился бы на них систему переставлять не разобравшись. а так - приходится выкручиваться.


 
sas-koval   (2010-09-20 22:52) [8]

нашёлся способ заполучить пароль...

я перенёс процедуру подключения из formcreate в formshow и отсюда я уже смог вызвать другую форму для введения пароля.
имея пароль на руках - буду делать дамп с помощью mysqldump.
Спасибо всем за участие!



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.053 c
15-1352816598
mfender
2012-11-13 18:23
2013.03.22
Fatal error. Не создаётся .dcu


3-1282030520
scott
2010-08-17 11:35
2013.03.22
аналог for xml auto для оракла


15-1350728255
NailMan
2012-10-20 14:17
2013.03.22
Медицинские заморочечки


2-1337169674
Дмитрий Белькевич
2012-05-16 16:01
2013.03.22
автоинкрементное поле в TClientDataSet


15-1352825506
>|<
2012-11-13 20:51
2013.03.22
Определение границ максимальной плотности точек