• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Нотификация о изменении данных в MS SQL 2000

  • Автор темы Barmutik
  • Дата начала
B

Barmutik

Подскажите реализуем ли следующий механизм:

Я хочу что бы моя программа клиент узнавала об изменениях в какой-то конкретной таблице на сервере. Например в таблицу добавилась запись и клиент об этом узнал и произвёл требуемые ему действия.

Понятно что можно раз в интервал сканить таблицу .. но это не вариант ...
 
P

Pete

Одним триггером тут не обойдешься, нужно алерт выдавать, вопрос в том как... Лучше конечно вообще такого избегать по возможности (нотификации клиентов и прочее)
 
B

Barmutik

Что тригер то понятно .. вопрос как оповестить клиента .. такая возможность реализована в Interbase ... ну понятно что её сами борляндовцы писали ... но как сделать это в MS SQL Server 2000 ?

Единственное что мне пока пришло в голову так это из тригера вызывать мой Com-объект а из него потом уже нотифицировать клиентов своими средствами.. но какой-то не правильный путь как мне кажется .. может есть что-то более правильное ?

Что избегать оно конечно может и лучше .. но а всё таки ? Задача потенциально требует извещения клиентов...
 
?

????

Barmutik
Единственное что мне пока пришло в голову так это из тригера вызывать мой Com-объект а из него потом уже нотифицировать клиентов своими средствами.. но какой-то не правильный путь как мне кажется .. может есть что-то более правильное ?
а что смущает? пользуйся тогда рассылкой мэйлов :)
 
B

Barmutik

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

Просто так надо опять же делать менеджер соединений.. который будет искать своих активных клиентов и им потом рассылать что данные изменились ... мне просто казалось что проблема достаточно банальна и явно же её люди нераз решали и возможно есть более красивое решение.

Тогда вопрос до кучи:

Можно ли у MS SQL сервера узнать список активных клиентов для конкретной базы? В смысле имена или IP адреса машин откуда они подключились ?
 
?

????

Barmutik
Можно ли у MS SQL сервера узнать список активных клиентов для конкретной базы? В смысле имена или IP адреса машин откуда они подключились ?
А как же без этого? Должно быть точно. Я не могу проверить - у меня Оракл, но должно быть.
Просто так надо опять же делать менеджер соединений.. который будет искать своих активных клиентов и им потом рассылать что данные изменились ...
Вешай триггер на логон из которого запускается твой КОМ и бомбит определенную машину, пока приложение не скажет ему хватит ;)
люди нераз решали и возможно есть более красивое решение.
в MSSQL есть Microsoft Notification Services - что за звери - не знаю, но в MSDN'е описаны. может их тоже можнго применить?
 
G

Guest

Можно попробовать в конце триггера RAISERROR с низким уровнем значимости Severity Levels от 0 до 19, а в проге ловить Exception. Сам не пробовал,но как вариант.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!