Цель главы: Восстановить пользователей и их привилегии
← Предыдущая глава | Назад к оглавлению | Следующая глава →
In Questo Articolo
1. Экспорт пользователей
1.1 Экспорт с MySQL сервера
#!/bin/bash
# export_users.sh
# Percona Toolkit (рекомендуется)
pt-show-grants --host=localhost --user=root --password > users.sql
2. Импорт в MariaDB
2.1 Базовый импорт
# Импорт пользователей
mariadb -u root -p < users.sql
# Проверка
mariadb -u root -p -e "SELECT User, Host, plugin FROM mysql.user;"
3. Обработка плагинов
3.1 Конвертация caching_sha2_password
-- Найти пользователей с sha2
SELECT User, Host, plugin
FROM mysql.user
WHERE plugin = 'caching_sha2_password';
-- Конвертировать
ALTER USER 'username'@'host'
IDENTIFIED WITH mysql_native_password BY 'newpassword';
4. Настройка ролей
4.1 Создание ролей (MariaDB 10.1+)
-- Создать роли
CREATE ROLE developer;
GRANT SELECT, INSERT, UPDATE, DELETE ON app_db.* TO developer;
CREATE ROLE analyst;
GRANT SELECT ON app_db.* TO analyst;
-- Назначить роли
GRANT developer TO 'john'@'%';
SET DEFAULT ROLE developer FOR 'john'@'%';
FLUSH PRIVILEGES;
5. Проверка доступа
5.1 Тест подключений
#!/bin/bash
# test_user_connections.sh
# Файл: username:password:host
while IFS=: read user pass host; do
echo "Testing: $user@$host"
mariadb -h "$host" -u "$user" -p"$pass" -e "SELECT 'OK';" 2>&1
done < users_test.txt
Чек-лист
- [ ] Пользователи экспортированы
- [ ] Импорт в MariaDB выполнен
- [ ] Плагины совместимы
- [ ] Роли настроены
- [ ] Доступ протестирован