Проверка заблокированных пользователей DB2 из SQL Server

У меня есть база данных сервера sql, которая использует концепцию связанного сервера для подключения к базе данных DB2. База данных DB2 имеет доступ только для чтения. Мне нужно каждый день проверять, заблокирован ли пользователь Db2 (из-за неправильного ввода пароля более трех раз) с SQL Server. Как только это будет проверено, я, вероятно, смогу отправить электронное письмо группе пользователей о статусе пользователя DB2 (заблокирован или разблокирован).

Как я могу реализовать эту функцию? Мне известно о концепции «loginproperty» SQL Server, которая проверяет, заблокирован ли пользователь (использующий аутентификацию SQL Server) или нет.

Спасибо,


person xorpower    schedule 17.08.2015    source источник
comment
Любые комментарии будут очень полезны   -  person xorpower    schedule 17.08.2015


Ответы (2)


DB2 не выполняет аутентификацию пользователей — эта задача делегируется операционной системе (или LDAP, если так настроено). Поэтому вам потребуется получить информацию о заблокированной учетной записи от этого внешнего источника (ОС или LDAP), а не от DB2.

person mustaccio    schedule 17.08.2015
comment
Спасибо @mustaccio... Да, LDAP настроен... Кроме того, можно ли получить информацию о том, заблокировано имя создателя или нет? - person xorpower; 17.08.2015
comment
Большинство серверов LDAP позволяют выполнять к ним запросы; я полагаю, что свойство для поиска pwdAccountLockedTime. - person mustaccio; 17.08.2015
comment
Поэтому я думаю, что нет никакого способа узнать, могу ли я узнать из SQL Server, что ID создателя DB2 заблокирован или нет..? - person xorpower; 17.08.2015

Запросите удаленную таблицу. Если вы получили сообщение об ошибке SQL30082N, аккаунт заблокирован.

person Ian Bjorhovde    schedule 17.08.2015
comment
Есть ли у вас запрос DB2, проверяющий состояние учетной записи пользователя (заблокирована/разблокирована)? - person xorpower; 17.08.2015
comment
select * from <linked_table> where 1=0 ? Вы просто пытаетесь заставить MSSQL установить соединение с базой данных через запрос. Вам не нужны никакие данные, поэтому нечетное предложение where. - person Ian Bjorhovde; 17.08.2015
comment
Можете ли вы помочь мне узнать синтаксис логики, которую вы упомянули в комментариях выше? я тут немного туплю - person xorpower; 17.08.2015
comment
Выполните запрос, который я вам дал, но замените <linked_table> фактическим именем связанной таблицы. - person Ian Bjorhovde; 17.08.2015