1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

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

Тема в разделе "Базы данных и администрирование", создана пользователем Balda, 11 фев 2009.

  1. Balda

    Balda Гость

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

    etc Гость

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

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

    Balda Гость

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

    Пусть есть таблица 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). Как передать в триггер номер измененной/добавленной записи?
     
  4. etc

    etc Гость

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

Поделиться этой страницей