Запустить или сохранить для блокировки и разблокировки базы данных на 15 минут - PullRequest
0 голосов
/ 23 марта 2011

Уважаемый сэр, я создаю форму входа, в которой, если вы введете пароль 3 раза неправильно, ваша учетная запись будет заблокирована на следующие 15 минут.и мы отправляем случайный пароль на указанный emailid, который отправляется через 15 минут.В течение этих 15 минут учетная запись isactive = 'false'.

Так что вы можете помочь мне дать код для хранимой процедуры или триггеров, которые запускаются через 15 минут, которые обновляют эту учетную запись isactive = 'true'.

Пожалуйста, помогите мне.

Заранее спасибо

1 Ответ

0 голосов
/ 23 марта 2011

Вы бы не использовали триггер для этого. возможно можно что-то сделать с сервисным брокером (я не уверен).

Самый простой способ сделать это - просто иметь не обнуляемый LockedOutUntil smalldatetimeстолбец в таблице «Пользователи» (по умолчанию указывается дата в прошлом), и ваш код должен проверить, что

isactive='true' or LockedOutUntil<getdate()

Это будет занимать 4 байта в строке для всех пользователей, хотя и предположительно в любойодин раз очень немногие будут заблокированы, поэтому более эффективным способом будет создание новой таблицы, содержащей детали блокировки.Либо ваш код должен будет проверить эту таблицу, чтобы определить, заблокирован ли пользователь, либо вы можете деактивировать пользователя заранее и запланировать выполнение задания агента SQL Server каждую минуту для повторной активации пользователей, у которых истек период блокировки.Задание может также удалить их из таблицы блокировки, если вы не хотите вести историю этих событий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...