#mysql #client-server #mysql-5.7 #mysql-cli
Вопрос:
- Я использую root для входа на локальную серверную машину MySQL 192.168.156.33 и создания нового пользовательского теста для анонимного хоста %
CREATE USER test IDENTIFIED BY 'password';
- Я использую клиентскую машину для входа в систему с помощью пользовательского теста
mysql -u test -h 192.168.156.33 -p
- Я снова использую серверную машину, чтобы установить срок действия учетной записи с тестовым
ALTER USER 'test'@'%' PASSWORD EXPIRE;
паролемFLUSH PRIVILEGES;
, используя и используя Уведомление о том, что пользователь все еще входит в систему на клиентской машине - Пользовательский тест на клиентской машине все еще может использовать команду:
SHOW DATABASES, USE, SELECT,...
без предупреждения об изменении пароля - После того, как я использую команду
r
или (exit
и снова войду в систему) и попытаюсь использовать команду, появится предупреждение об изменении пароля, как обычно
Что я хочу: Как запретить пользователю использовать команды, когда срок действия пароля истекает, и показывать им предупреждение об изменении пароля без повторного подключения к серверу?
Комментарии:
1. Можно ли было бы пнуть пользователя? (Заставляя его повторно подключиться, затем он должен сменить пароль)
2. Как запретить пользователю использовать команды при истечении срока действия пароля и показывать им предупреждение об изменении пароля без повторного подключения к серверу? Теперь срок действия пароля проверяется только во время аутентификации. И вы не должны форсировать повторное подключение, теоретически это может нарушить работу текущего пользователя и привести к некорректности логических данных.
3. Здравствуйте @Akina, если я этого не сделаю, пользователи смогут делать что-то с конфиденциальными данными в наших базах данных без разрешения. Я тестирую его также при ПРЕДОСТАВЛЕНИИ и ОТМЕНЕ привилегий, но сначала я тестирую этот пароль с истекшим сроком действия, и я сталкиваюсь с проблемой.
4. Привет @Solarflare, да, это было бы так. У вас есть какие-либо решения?
5. если я этого не сделаю, пользователи смогут что-то делать с конфиденциальными данными в наших базах данных без разрешения. Нет. Во время аутентификации у пользователя было разрешение, следовательно, сеанс получает это разрешение. Тот факт, что вы изменили разрешение для пользователя, не изменяет разрешение сеанса. И сеанс может получить доступ к объекту, который вы «защитили».