Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте, возможно ли использовать set password for.... в триггере ?
пишу так (триггер after update)
set password for NEW.login_name = password(NEW.passwd);
но выскакивает ошибка на NEW.login_name ошибка синтаксиса и т.д. возможно ли как- то это реализовать ?
Неактивен
На месте for ... ожидается строка, а Вы поставили переменную. Обойти можно двумя способами:
1. UPDATE mysql.user SET password=PASSWORD(NEW.password) where User=... Host=..;
FLUSH PRIVILEGES;
2. подготовить Выше выражение через PREPARE, смотри тему
http://sqlinfo.ru/forum/viewtopic.php?id=363
Неактивен
А разве FLUSH PRIVILEGES; можно использовать в триггере ? на сколько я знаю нельзя
Неактивен
Действительно нельзя, тогда только второй путь. Наверное правильно писать запись в специальную таблицу и планировать EVENT на некий момент в будущем. EVENT не будет иметь ограничения триггера, а данные возьмет из дополнительной таблицы. Жалко, что события только в MySQL 5.1
Неактивен
При попытке сделать через prepare пишет мол dynamic sql is not allowed in stored fucntion or trigger
делал так:
CREATE DEFINER=`pavel`@`10.1.1.%` PROCEDURE `chuserpas`(username varchar(50),pass varchar(50))
begin
set @chq = concat('SET Password for ',username,' = PASSWORD(',pass,')');
PREPARE execq FROM @chq;
EXECUTE execq;
end;
CREATE TRIGGER `lxls`.`upduserpas` AFTER UPDATE ON `lxls`.`user_options`
FOR EACH ROW call chuserpas(NEW.login_name,NEW.passwd);
Неактивен
жесткие ограничения на триггеры...
Остается только записывать в другую таблицу и выполнять по крону.
Неактивен
Это именн ов самом MySql как я понимаю, ибо в правах пользователя ничего подобного не обнаружил (
Неактивен
Неактивен