Adminer — однофайловый PHP-инструмент для управления базами данных через браузер. Устанавливается размещением одного файла adminer.php на сервере без дополнительных зависимостей. Поддерживает MySQL, MariaDB, PostgreSQL, SQLite, MS SQL и MongoDB.
Как работает Adminer
Adminer — PHP-скрипт, который устанавливает соединение с СУБД, используя введённые в браузере учётные данные. Все операции выполняются на стороне сервера: браузер отображает только HTML-результат. Это делает Adminer безопасным в отношении XSS-атак по сравнению с решениями, передающими SQL через клиентский JavaScript.
Интерфейс: выбор СУБД → хост/порт → имя пользователя/пароль → список баз данных → таблицы → данные. Все операции через формы, без написания SQL вручную — хотя вкладка SQL Editor позволяет выполнять произвольные запросы.
Сравнение с phpMyAdmin
| Характеристика | Adminer | phpMyAdmin |
|---|---|---|
| Размер | ~530 КБ (1 PHP-файл) | ~15 МБ (350+ файлов) |
| Установка | Скачать один файл | Composer + конфигурация |
| Поддерживаемые СУБД | MySQL, PgSQL, SQLite, MS SQL, MongoDB | Только MySQL/MariaDB |
| Поверхность атаки | Меньше (меньше кода) | Больше CVE исторически |
| Темы | Сменные CSS-темы | Свои темы |
Основные функции
- Просмотр и редактирование таблиц, строк данных.
- Выполнение SQL-запросов с подсветкой синтаксиса и автодополнением.
- Импорт/экспорт в SQL и CSV.
- Управление структурой: создание таблиц, индексов, внешних ключей.
- Управление пользователями и привилегиями.
- Просмотр хранимых процедур, триггеров, событий.
История
Adminer создан Якубом Враной (Jakub Vrána) в 2007 году под первоначальным названием phpMinAdmin. В 2009 году переименован в Adminer. Версия 4.0 вышла в 2014 году. Adminer Editor — отдельный вариант для конечных пользователей без SQL-доступа (CRUD-интерфейс для таблиц).
Безопасность
Adminer никогда не должен быть доступен публично без дополнительной защиты. Минимальные меры: разместить под непредсказуемым URL (/a1b2c3/adminer.php), ограничить доступ по IP через Nginx или .htaccess:
# Nginx: доступ только с конкретного IP
location /adminer.php {
allow 203.0.113.5;
deny all;
}
После работы удалять файл с сервера — стандартная практика при работе с production-БД. Аутентификация через СУБД означает, что учётные данные передаются по сети — использовать только через HTTPS. На VPS лучше закрыть 3306 для внешних подключений через UFW и подключаться к Adminer через SSH-туннель.
Adminer Editor и расширения
Adminer Editor — отдельный вариант инструмента без SQL-доступа: пользователи видят только таблицы как формы CRUD, без прямого SQL. Полезен для контент-менеджеров, которым не нужен прямой SQL.
Пользовательские расширения (Adminer plugins) позволяют добавить: автодополнение SQL, экспорт в Excel, ограничение доступных баз данных. Расширения — PHP-классы, подключаемые одной строкой. В Docker: официальный образ adminer:latest готов к работе без конфигурации. Переменные окружения ADMINER_DEFAULT_SERVER и ADMINER_DESIGN задают сервер БД и тему интерфейса.