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

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

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

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

Контроль над пользователями БД

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

Balda

Используется MS SQL Server 2005.
Необходимо получить информацию о том какой пользователь какие изменения вносил, какие записи добавлял и т.д.
Где эту инфу можно найти? И можно ли выудить её с помощью SQL запроса?
 
E

etc

Сначала надо определиться какого пользователя разыскиваем.
Но чтото можно узнать из лога, при том что лог настроен.

В общем случае считайте что нет.
 
B

Balda

А если попробовать прописать триггеры, которые будут вносить нужную информацию в специальную таблицу?

Пусть есть таблица Log, в которую будем заносить информацию об измененных и добавленных строках.
В ней есть столбцы:
ID-первичный ключ таблицы,
login-имя пользователя БД,
date-время изменения БД
action-изменение/добавление,
table-имя таблицы, в которой произошли изменения,
record_id-номер добавленной или измененной записи.

Теперь пишем триггер. Например для таблицы Table:
Код:
Create trigger dbo.TR_table ON dbo.Table
After INSERT, UPDATE
AS
BEGIN

INSERT INTO Log Values(...)

END

Вот по этой строке
Код:
INSERT INTO Log Values(...)
возникают вопросы:
1). Как выловить номер последней записи в таблице Log и передать его как параметр+1 в триггер?
2). Есть ли стандартная переменная, хранящая имя текущего пользователя БД?
3). Поле action таблицы Log должно содержать значение "изменен", если триггер сработал на Update и "добавлен"-на Insert. Где-то запоминается на какое событие сработал триггер?
4). Как передать в триггер номер измененной/добавленной записи?
 
E

etc

1) 4) 3) Читайте инфу по тригерам, там все это есть. inserted, deleted ...
2) Опять таки про каких речь? есть такое CURRENT_USER, оно?
 
Мы в соцсетях:

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