Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Контроль даты истечения пароля (Как это сделать в Навижн?)  [new]
kadawrik
Member

Откуда:
Сообщений: 25
Прошу совета у спецов, как нам решить нарисовавшуюся проблему.
Исходные данные: NAV 5.01, SQL Server 2008 R2
Мы недавно перешли с нативной базы Навижн на SQL. После этого юзеры перестали получать сообщение о том, что через N дней истекает пароль (в один прекрасный день программа их просто отфутболивает со словами: Срок действия вашего пароля истек)

Прим. для тех, кто знаком с NAV: раньше в Т2000000002 (User) было поле Expiration Date Password, которое заполнялось при смене пароля триггером OnModify этой самой таблицы (это поле проверялось в CU1.LogInStart и, если оставалось меньше определенного кол-ва дней до конца, то пользователь получал соотв. сообщение и мог своевременно изменить пароль). Сейчас SQL этот триггер попросту не выполняет, в рез-те чего поле хранит неверное значение (по этой причине фрагмент в CU1.LogInStart пришлось закомментарить)

Как решить проблему? а именно: нужно юзеров заблаговременно уведомлять, что через столько-то дней пароль истечет.

п.с.: у нас пользователи для работы в Нав используют не Windows, a Database аутотенфикацию.
п..п.с.: на sql-сервере галки "enforce password policy стоят
26 фев 13, 17:51    [13984514]     Ответить | Цитировать Сообщить модератору
 Re: Контроль даты истечения пароля (Как это сделать в Навижн?)  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Ну, если у Вас реально SQL логины, то LOGINPROPERTY ( 'login_name' , 'property_name' ) Вам в помощь в части свойства DaysUntilExpiration. Проверяйте с необходимой периодичностью (джобом) и шлите письма.
26 фев 13, 17:55    [13984537]     Ответить | Цитировать Сообщить модератору
 Re: Контроль даты истечения пароля (Как это сделать в Навижн?)  [new]
kadawrik
Member

Откуда:
Сообщений: 25
pkarklin, спасибо за подсказку.
Но нам бы не хотелось заморачиваться с мейлами (их надо где-то хранить и поддерживать в актуальном состоянии)
Есть такая идея: запускается 1 раз в день Job, который проверяет PasswordLastSetTime (с помощью всё той де LOGINPROPERTY), и если эта дата = вчера/сегодня, тогда произвести в таблице T200000002 у соответствующего юзера в поле "PasswordLastSetTime" соответствующее изменения.
Проблема в том, что я с SQL пока только на ВЫ ;( нахожусь в процессе знакомства и осваивания)
Если б кто помог набросать скрипт для выполнения этой задачи, была б премного благодарна ;)
27 фев 13, 12:48    [13987777]     Ответить | Цитировать Сообщить модератору
 Re: Контроль даты истечения пароля (Как это сделать в Навижн?)  [new]
Glory
Member

Откуда:
Сообщений: 104751
UPDATE mytable SET PasswordLastSetTime = LOGINPROPERTY(... WHERE ...

Сообщение было отредактировано: 27 фев 13, 13:02
27 фев 13, 13:01    [13987902]     Ответить | Цитировать Сообщить модератору
 Re: Контроль даты истечения пароля (Как это сделать в Навижн?)  [new]
kadawrik
Member

Откуда:
Сообщений: 25
Вариант с UPDATE сделала. Работает.
Теперь вот озадачилась реализоватьт вариант с отсылкой мейла.
Хочу это сделать с помощью SSIS.
Вот, наваяла пакет
Картинка с другого сайта.

В блоке "Select Users" выполняется запрос
SELECT [User ID], Name, Users_EMail
FROM dbo.[User]
WHERE (LOGINPROPERTY([User ID], 'DaysUntilExpiration') < 10) AND (LOGINPROPERTY([User ID], 'DaysUntilExpiration') > 0)

результат помещается в переменную USER::SetOfUsers
7 мар 13, 12:56    [14024196]     Ответить | Цитировать Сообщить модератору
 Re: Контроль даты истечения пароля (Как это сделать в Навижн?)  [new]
kadawrik
Member

Откуда:
Сообщений: 25
Далее цикл со след. параметрами:
Картинка с другого сайта.


Блок "Send Mail Task" пока настроен так:
Картинка с другого сайта.

т.е. если я явноо прописываю адрес получателя, то мейл отправляется (столько раз, сколько "критичных" пользоватетелей было обраружено)
Моя задача сейчас сделать так, чтобы адрес эл. почты для каждого юзера подставлялся свой.
Там есть возможность задать выражение для параметра ToLine, т.е. ему можно присвоить значение какой-то переменной. Но проблема в том, что я пока никак не соображу как мне в переменную (ну например, назовем ее USER::UsersEMail) считать значение поля Users_Email из результата селекта первого блока.

Может кто подскажет, как правильно настроить параметры и переменные?
7 мар 13, 16:17    [14025227]     Ответить | Цитировать Сообщить модератору
 Re: Контроль даты истечения пароля (Как это сделать в Навижн?)  [new]
Crimzic
Member

Откуда: Sydney
Сообщений: 59
[img=]kadawrik,

Можно было также воспользоваться SQL Mail и не заморачиваться с SSIS.
Как считать значение из "Foreach ADO Enumerator" в переменную смотрим вкладку "Variable Mapping" в свойствах For Each Loop.

К сообщению приложен файл. Размер - 40Kb
8 мар 13, 07:09    [14027132]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить