Правило Postgres для аннулирования пользовательских паролей каждые 60 дней - PullRequest
0 голосов
/ 28 сентября 2010

У меня возникают проблемы с аннулированием пользовательских паролей каждые 60 дней в моей базе данных postgres:

CREATE RULE user_expiration AS ON UPDATE TO users DO INSTEAD UPDATE user SET user_expires = user_expires + '60'

Это будет работать каждый раз, когда пользователь меняет свой парольОднако это также работает каждый раз, когда любое обновление выпущено на записи.Как я могу гарантировать, что он обновляется только при изменении пароля?

1 Ответ

1 голос
/ 28 сентября 2010

Триггер - лучшее решение. Начиная с версии 9.0 он имеет для каждого столбца триггеры , которые запускаются только при изменении определенного столбца. В старых версиях вы должны выполнить проверку внутри функции, сравнить OLD.password и NEW.password, прежде чем вы решите обновить столбец user_expires.

...