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

Откуда:
Сообщений: 3
1.
есть бд мсскл,в ней таблица,хочется узнать какая программа с ней работает(программа работает с пк в локалке)
достаточно узнать ип пк или имя

можно както такое реализовать?


2.
как залогировать все скл запросы в эту таблицу?





Спасибо!
5 фев 14, 17:16    [15524172]     Ответить | Цитировать Сообщить модератору
 Re: есть таблица,как узнать какой ип с ней работает в сети?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
1. посмотреть увсе коннекты к БД , посмотреть последний скл и попытаться понять кто читает таблицу ...НО чистого коннекта к таблице,вы не накопаете... нет такого обьекта коннект к таблице . Для упрощения можно использовать SQL Profiler
2. SQL Profiler
5 фев 14, 17:19    [15524190]     Ответить | Цитировать Сообщить модератору
 Re: есть таблица,как узнать какой ип с ней работает в сети?  [new]
Aleksander1980
Member

Откуда:
Сообщений: 3
ну допустим мы определили последний запрос к бд
он у нас есть
как определить какой юзер его сделал?
а следом можно както посмотреть в логах ипы подключаемых юзеров?
5 фев 14, 17:26    [15524243]     Ответить | Цитировать Сообщить модератору
 Re: есть таблица,как узнать какой ип с ней работает в сети?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
ну допустим начинаем читать про системные динамический представления .. типа sys.dm_exec_....
5 фев 14, 17:27    [15524260]     Ответить | Цитировать Сообщить модератору
 Re: есть таблица,как узнать какой ип с ней работает в сети?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31778
Aleksander1980
1.
есть бд мсскл,в ней таблица,хочется узнать какая программа с ней работает(программа работает с пк в локалке)
достаточно узнать ип пк или имя

можно както такое реализовать?
Главная проблема - как определить понятие "работает с таблицей"

Например, при вставке данных в другую таблицу, которая ссылается на неё, произойджёт проверка наличие соответствующих значений ключа. это работа с таблицей?

В общем, профайлером смотрите запросы и сами анализируйте.
5 фев 14, 17:40    [15524358]     Ответить | Цитировать Сообщить модератору
 Re: есть таблица,как узнать какой ип с ней работает в сети?  [new]
o-o
Guest
у меня полет извращенной фантазии начался, извиняйте:

можно настроить аудит уровня базы именно на SELECT и именно на нужную таблицу.
разумеется, Enterprise Edition only
+ неудобно, надо явно наблюдаемых юзеров перечислить в спецификации audit-a
подробности: CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL)

в аудит попадет и логин, и сам запрос
(хотя формат audit-файла какой-то кривой, простите)

теперь логины.
можно в лог сервера не только Failed Logins писать, но и Successful
(и этим хорошенько закакать лог)
ну и из error log-а черпать IP.
5 фев 14, 18:55    [15524693]     Ответить | Цитировать Сообщить модератору
 Re: есть таблица,как узнать какой ип с ней работает в сети?  [new]
igor_ku
Member

Откуда:
Сообщений: 129
o-o
+ неудобно, надо явно наблюдаемых юзеров перечислить в спецификации audit-a

А что если в качестве principal при создании спецификации указать роль public, которую по умолчанию имеют все юзеры? Например:
CREATE DATABASE AUDIT SPECIFICATION Test_DAS
  FOR SERVER AUDIT Test_SA
  ADD (SELECT, INSERT ON dbo.Table1 BY public)
  WITH (STATE = ON);

Тогда не нужно прописывать всех юзеров.

Остаётся вопрос - как заматчить данные аудита на IP или Hostname?
В аудите есть session_id и время события. Та же информация есть в sys.dm_exec_sessions. Можно периодически сканить эту dmv (например, через 30 сек) и сохранять сессии (тоже какашки, но имхо не критикал и можно чистить). Потом запросом к аудиту и сохранённым сессиям получить то, что хочет ТС.
7 фев 14, 12:01    [15533452]     Ответить | Цитировать Сообщить модератору
 Re: есть таблица,как узнать какой ип с ней работает в сети?  [new]
gang
Member

Откуда:
Сообщений: 1394
igor_ku,

Попробуйте трассировку события Audit Schema Object Access Event, естественно с фильтром по вашей таблице. Там есть поле HostName.
7 фев 14, 14:11    [15534589]     Ответить | Цитировать Сообщить модератору
 Re: есть таблица,как узнать какой ип с ней работает в сети?  [new]
o-o
Guest
igor_ku
А что если в качестве principal при создании спецификации указать роль public, которую по умолчанию имеют все юзеры?

спасибо, проканалось

и про "кривой файл аудита" беру слова назад,
читать его надо fn_get_audit_file-ом, а не как я вчера
7 фев 14, 16:31    [15535752]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить