Задать вопрос
jalpy
@jalpy
sdfdfg

Как узнать, что делает пользователь в MSSQLSERVER 2012?

Добрый день, есть приложение который подключается к СУБД MS SQL SERVER 2012, в документации написано что должен быть в роли сервера sysadmin,
Задача: Необходимо узнать подключившись под учетной записью с привилегией sysadmin что делает в БД.
подскажите как осуществить задуманное ?
  • Вопрос задан
  • 273 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@edb
SQL
Запустите profiler.
А вообще приложению не нужна роль sysadmin, а если нужна, то есть сомнения в квалификации разработчика.
Ответ написан
Комментировать
mahoho
@mahoho
Full stack certified PHP developer.
SQL Server audit Вам в помощь. Работает так - вы настраиваете, какие события для какого пользователя вы хотите отслеживать, и всё это складывается в специально обученный файлик .sqlaudit, откуда можно потом эти логи читать функцией
sys.fn_get_audit_file.
Стоит также помнить, что другой пользователь из группы sysadmin может всё это поотключать.
Я рекомендую для такого приложения создать отдельный инстанс (провести установку новую установку и выбрать named instance), чтобы изолировать бд приложения, требующего максимальные привилегии, от других баз.
Ответ написан
Комментировать
jalpy
@jalpy Автор вопроса
sdfdfg
edb, согласен
Aleksey Ratnikov можете подсказать, чтобы иметь доступ к функции sys.fn_get_audit_file какие гранты должен иметь пользователь?
немного информации: если пользователя добавить в роль public убрав из sysadmin то выходит такая ошибка:
There was an error when config audit on target test due to ??? ?????????? ?? ?????? "FN_TRACE_GETINFO". Query: select traceid from ::fn_trace_getinfo(0) where property=2 and CAST( value as nvarchar(245) ) like 'c:\1\name-trace-1fb00a09-1374-4fa0-bfa3-826879b9eced-%' Parameters: [].
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы