Управління зовнішніми базами даних через phpMyAdmin »Crossroads

PhpMyAdmin - потужний і зручний інструмент для справляння базами даних MySQL і MariaDB. Так само працює з Percona. Підтримує величезний перелік операцій і працює без додаткових налаштувань практично в будь-якому сучасному дистрибутиві Linux.
Однак за замовчуванням phpMyAdmin налаштований на роботу з localhost, тобто з сервером баз даних, розташованому на локальній машині. Процедура «перепідключення» phpMyAdmin на роботу з зовнішнім сервером досить проста, але викликає питання у тих, хто займається всім цим недавно або неглибоко.
У даній статті ми розглянемо кілька варіантів підключення phpMyAdmin до зовнішнього сервера, так як завдання і умови у всіх різні. У прикладі я використовую сервер баз даних MariaDB, ОС Ubuntu і phpMyAdmin версії 4.5.4, що практично не важливо, тому що все досить просто. PhpMyAdmin встановлений на домашній ПК, але з тим же успіхом він може бути налаштований і на віддаленому сервері. Мається на увазі, що все прикладне ПЗ, таке як безпосередньо сам сервер БД, http-сервер і php у вас вже встановлено.
Приклад перший (доступ з паролем).
Сервер баз даних розташований на машині з адресою 10.10.1.10. PhpMyAdmin встановлюємо на локальний ПК з адресою 10.10.1.20. Необхідно переконатися, що сервер баз даних приймає зовнішні з'єднання. Правимо my.cnf (/etc/mysql/my.cnf). У рядку bind-address за замовчуванням адреса був призначений додатковий 127.0.0.1, що забороняє сервера приймати зовнішні з'єднання. Замінюємо його на 0.0.0.0, що дозволить зовнішні з'єднання з будь-якої адреси. З метою безпеки краще уточнити адресу, якщо ви не плануєте підключатися до сервера з різних джерел. У цьому прикладі буде використовуватися рядок наступного виду:
bind-address = 10.10.1.20
Зберігаємо і перезавантажуємо.
sudo service mysql restart
На ПК (або інший віддалений сервер) встановлюємо phpMyAdmin.
sudo apt install phpmyadmin
В процесі установки відмовляємося від конфігурації (конфігурувати нічого; сервер баз даних на віддаленій машині).
Далі правимо конфігураційний файл phpMyAdmin config.inc.php (/etc/phpmyadmin/config.inc.php). Якщо це була свіжа установка і на локальному хості немає сервера баз даних, то видаляємо всі рядки (крім першої «
/ * External Server # 1 * / $ i ++; $ Cfg [ 'Servers'] [$ i] [ 'verbose'] = 'Server Name'; $ Cfg [ 'Servers'] [$ i] [ 'host'] = '10 .10.1.10 '; $ Cfg [ 'Servers'] [$ i] [ 'connect_type'] = 'tcp'; $ Cfg [ 'Servers'] [$ i] [ 'extension'] = 'mysqli'; $ Cfg [ 'Servers'] [$ i] [ 'auth_type'] = 'cookie'; $ Cfg [ 'Servers'] [$ i] [ 'AllowNoPassword'] = false;
Замість Server Name вписуємо що завгодно. Зберігаємо і закриваємо файл.
Відкриваємо в браузері адресу http: // localhost / phpmyadmin / і далі все в штатному режимі. Якщо у вас підключено кілька серверів, то їх можна вибрати у вкладці, під полями логіна і пароля.
Приклад другий (без пароля).
Введення ім'я користувача бази даних і пароля - заняття тоскне, якщо phpMyAdmin розташований не на публічному сервера, а вдома на ПК, до якого крім вас ніхто не підходить. Тому можна спростити процес входу, вказавши в файлі конфігурації користувача бази і його пароль.
На стороні сервера входимо в консоль сервера БД
mysql -u root -p
Створюємо користувача (умовно «username»)
CREATE USER 'username' @ '%' IDENTIFIED BY 'password';
«%» - говорить про те, що користувач зможе увійти з будь-якого хоста. Якщо в цьому немає необхідності, то вкажіть IP хоста. В даному прикладі це 10.10.1.20. «Password» - пароль користувача.
Створюємо нову базу даних (умовно «newdatabase»)
CREATE DATABASE newdatabase;
Даємо користувачеві username все права на управління базою newdatabase
grant CREATE, INSERT, DELETE, UPDATE, SELECT on newdatabase. * to 'username' @ '%';
З приводу «%» дивіться вище.
Таким чином ми створили базу даних «newdatabase», користувача для неї «username» з паролем «password» і дали йому права на управління цією базою.
У config.inc.php (/etc/phpmyadmin/config.inc.php) вписуємо наступне:
/ * Newdatabase * / $ i ++; $ Cfg [ 'Servers'] [$ i] [ 'connect_type'] = 'tcp'; $ Cfg [ 'Servers'] [$ i] [ 'auth_type'] = 'config'; $ Cfg [ 'Servers'] [$ i] [ 'host'] = '10 .10.1.10 '; $ Cfg [ 'Servers'] [$ i] [ 'verbose'] = 'Server Name'; $ Cfg [ 'Servers'] [$ i] [ 'user'] = 'username'; $ Cfg [ 'Servers'] [$ i] [ 'password'] = 'password'; $ Cfg [ 'Servers'] [$ i] [ 'hide_db'] = '^ (mysql performance_schema | innodb | information_schema) $';
При вході в phpMyAdmin ми побачимо вкладку з сервером (або серверами), але вибравши потрібний, поля логіна і пароля потрібно залишити порожніми.
Таким чином серверів баз (приклад перший) і самих баз (приклад другий) можна підключити скільки завгодно.
Приклад третій (без пароля з адмінській привілеями).
Щоб ще більше полегшити завдання собі і зловмисникові, (в разі якщо ви не дуже добре розумієте, що робите) можна створити користувача з адмінській привілеями. Підходить як для першого прикладу, так і для другого. Деякі адміністратори використовують обліковий запис root для входу в phpMyAdmin. Якщо у вас багато баз даних, це позбавляє від необхідності тримати під рукою список з паролями від десятків баз і введення всього цього при перемиканні між базами.
Якщо phpMyAdmin у вас на реально персональному комп'ютері вдома, порт 3306 закритий від сторонніх і так далі, то все це не небезпечніше, ніж конфігураційні скрипти переважної більшості CMS, де дані доступу до БД записані відкритим текстом.
І так, створюємо користувача і даємо йому права, ідентичні правам root.
CREATE USER 'superuser'@'10.10.1.20' IDENTIFIED BY 'strongpassword';
GRANT ALL PRIVILEGES ON *. * TO 'superuser'@'10.10.1.20' WITH GRANT OPTION;
Ми створили користувача «superuser» з паролем «strongpassword», який може з'єднуватися з сервером БД з IP адреси 10.10.1.20.
Усі три методи спрощують життя, в тій чи іншій мірі, але так само можуть стати причиною гострого геморою, так як навіть найсильніший пароль, на ряду з усіма іншими маніпуляціями, передається на сервер через вашого провайдера в незашифрованому вигляді. Якщо ви не впевнені в захищеності свого каналу, то краще встановити phpMyAdmin на тій же машині, де вже встановлено сервер баз даних, обмежити до нього доступ будь-яким зручному для вас способом і не використовувати http протокол для доступу до нього.

___
Tatyana K.

Уважаемые партнеры, если Вас заинтересовала наша продукция, мы готовы с Вами сотрудничать. Вам необходимо заполнить эту форму и отправить нам. Наши менеджеры в оперативном режиме обработают Вашу заявку, свяжутся с Вами и ответят на все интересующее Вас вопросы.

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: