Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Aleksander1980 Member Откуда: Сообщений: 3 |
1. есть бд мсскл,в ней таблица,хочется узнать какая программа с ней работает(программа работает с пк в локалке) достаточно узнать ип пк или имя можно както такое реализовать? 2. как залогировать все скл запросы в эту таблицу? Спасибо! |
5 фев 14, 17:16 [15524172] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
1. посмотреть увсе коннекты к БД , посмотреть последний скл и попытаться понять кто читает таблицу ...НО чистого коннекта к таблице,вы не накопаете... нет такого обьекта коннект к таблице . Для упрощения можно использовать SQL Profiler 2. SQL Profiler |
5 фев 14, 17:19 [15524190] Ответить | Цитировать Сообщить модератору |
Aleksander1980 Member Откуда: Сообщений: 3 |
ну допустим мы определили последний запрос к бд он у нас есть как определить какой юзер его сделал? а следом можно както посмотреть в логах ипы подключаемых юзеров? |
5 фев 14, 17:26 [15524243] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
ну допустим начинаем читать про системные динамический представления .. типа sys.dm_exec_.... |
5 фев 14, 17:27 [15524260] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31778 |
Например, при вставке данных в другую таблицу, которая ссылается на неё, произойджёт проверка наличие соответствующих значений ключа. это работа с таблицей? В общем, профайлером смотрите запросы и сами анализируйте. |
||
5 фев 14, 17:40 [15524358] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
igor_ku Member Откуда: Сообщений: 129 |
А что если в качестве 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] Ответить | Цитировать Сообщить модератору |
gang Member Откуда: Сообщений: 1394 |
igor_ku, Попробуйте трассировку события Audit Schema Object Access Event, естественно с фильтром по вашей таблице. Там есть поле HostName. |
7 фев 14, 14:11 [15534589] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
спасибо, проканалось и про "кривой файл аудита" беру слова назад, читать его надо fn_get_audit_file-ом, а не как я вчера |
||
7 фев 14, 16:31 [15535752] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |