almost 6 years ago

Собственно, как я и ожидал, учёт логинов в MySQL базе данных ужасно неудобен,
когда надо срочно быстро вспомнить логин/пароль для какого-то сайта. Даже при
наличии дополнительной функции find_login всё равно нужно сначала запускать
mysql-клиента, заходить в базу данных... долго. Надо быстрее.

Создание агента для получения логинов/паролей из базы данных

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

Добавляем нового пользователя в MySQL-сессии:

create user fetcher; 
grant execute on my.* to fetcher;

Здесь я подразумеваю, что таблица logins находится в базе данных my и я буду использовать пользователя fetcher для доступа к каким-нибудь ещё таблицам, буде таковые появятся в my

Скрипт для получения логинов/паролей из базы данных используя агента

Я хочу уметь делать в консоли так:

$ fl myalias
+------+-------------+-------+----------+------------+
| type | hostname    | login | password | address    |
+------+-------------+-------+----------+------------+
| ftp  | *******.com | ***** | ******** | /somewhere |
+------+-------------+-------+----------+------------+

Вызываю скрипт fl и передаю ему часть алиаса для записи в таблице logins => получаю список найденных записей прямо в консоль.

Для чего пишу в консоли следующее:

$ cat > ~/bin/fl << "EOF"
#!/bin/sh
mysql -u fetcher -e "use my; call find_login('$1');"
EOF
$ chmod 755 ~/bin/fl

Каталог ~/bin у меня в $PATH. Собственно, на этом всё, цель достигнута.

 
comments powered by Disqus