Учёт логинов в MySQL базе данных часть 2: поиск прямо из Bash
2011.09.17
Собственно, как я и ожидал, учёт логинов в 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
. Собственно, на этом всё, цель
достигнута.