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

Откуда:
Сообщений: 50
Подскажите, пожалуйста, есть приложение (на Delphi 5). Из приложения пользователь может корректировать, просматривать записи БД. Запрет только на удаление.
Можно ли отследить, когда пользователь "руками" или через Query Analyzer вносит изменения в таблицу. Как это сделать?
SQL Server 2000 SP4
9 дек 09, 15:07    [8041128]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
Пилотажный
Member

Откуда: NGC 6137
Сообщений: 2771
Anmu,
наверно этот вопрос по теме журналирование, отслеживание, ... изменений данных -
то есть часто важно знать - кто, когда и какие изменения внес в какие-то
данные (в какие-то поля каких-то таблиц)

Для чего это важно - тоже ясно: кто как работает, кто виноват, ...

Статей много на эту тему - в том числе и на sql.ru Протоколирование действий пользователей ....
9 дек 09, 15:32    [8041332]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
Anmu
Member

Откуда:
Сообщений: 50
у меня в приложении есть строгий контроль логики заполняемых полей. Пользователи этим способом обходят ее. Закрыть доступ к таблице не могу, так как пользователи должны корректировать информацию в базе.
Пилотажный , спасибо за ссылку... Попробую разобраться.
9 дек 09, 15:40    [8041416]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
Anmu
Member

Откуда:
Сообщений: 50
Прочитала все по ссылке "Протоколирование действий пользователей и версионность записей".
Будет ли все это работать при условии, если пользователь меняет запись через Enterprise Manager, без использования хранимых процедур и т.д.?
9 дек 09, 16:10    [8041692]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
Прямой доступ на таблицы никогда давать нельзя !!!!
Всю логику нужно реализовывать только через хп.
9 дек 09, 16:15    [8041733]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
Пилотажный
Member

Откуда: NGC 6137
Сообщений: 2771
Anmu
Прочитала все по ссылке "Протоколирование действий пользователей и версионность записей".
Будет ли все это работать при условии, если пользователь меняет запись через Enterprise Manager, без использования хранимых процедур и т.д.?


например,
current_user - кто
host_name() - с какого компьютера

А чем - Access-ом, Enterprise Манагером, ... - какая разница? Важно в каком поле, когда и что менял-вставлял-удалял? Так ведь в общем случае?
9 дек 09, 16:23    [8041831]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
Пилотажный
Anmu
Прочитала все по ссылке "Протоколирование действий пользователей и версионность записей".
Будет ли все это работать при условии, если пользователь меняет запись через Enterprise Manager, без использования хранимых процедур и т.д.?


например,
current_user - кто
host_name() - с какого компьютера

А чем - Access-ом, Enterprise Манагером, ... - какая разница? Важно в каком поле, когда и что менял-вставлял-удалял? Так ведь в общем случае?


И как вы собираетесь отслеживать "кто" изменил таблицу при помощи current_user ?
9 дек 09, 16:26    [8041862]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
Пилотажный
Member

Откуда: NGC 6137
Сообщений: 2771
--__Александр__--
Прямой доступ на таблицы никогда давать нельзя !!!!
Всю логику нужно реализовывать только через хп.


К данным лезут (и часто нужно лезть) ведь не только через специально назначенные клиентcкие программы.
9 дек 09, 16:27    [8041874]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
Anmu
Member

Откуда:
Сообщений: 50
Мне необходимо отследить только те изменения, которые делаются не из моего приложения, любым другим способом. Необязательно что это изменение будет последнее, меня интересует какое поле, во сколько, кем (или с какого ip) и на что было исправлено.
9 дек 09, 16:35    [8041951]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
Если у человека есть прямой доступ на таблицу(на изменение) - то только трассировка.
Если я ошибаюсь, то жду когда Пилотажный укажет способ с current_user.
9 дек 09, 16:38    [8041976]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
Glory
Member

Откуда:
Сообщений: 104760
Anmu
Мне необходимо отследить только те изменения, которые делаются не из моего приложения, любым другим способом. Необязательно что это изменение будет последнее, меня интересует какое поле, во сколько, кем (или с какого ip) и на что было исправлено.

У вас каждый пользователь имеет персональный логин в MSSQL ?
9 дек 09, 16:44    [8042044]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
Anmu
Member

Откуда:
Сообщений: 50
Glory,
да
9 дек 09, 16:48    [8042091]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
Glory
Member

Откуда:
Сообщений: 104760
Anmu
Glory,
да

Тогда предложенный в ссылке метод будет работать откуда угодно
Только учтите, что имя приложения и имя машины пользователь может задать сам в строке коннекта
9 дек 09, 16:51    [8042121]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
Glory,
Подскажите пожалуйста, как отслеживать кто изменил запись.
9 дек 09, 16:56    [8042166]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
Glory
Member

Откуда:
Сообщений: 104760
--__Александр__--
Glory,
Подскажите пожалуйста, как отслеживать кто изменил запись.

Ссылку же дали
9 дек 09, 16:58    [8042187]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
Glory
Member

Откуда:
Сообщений: 104760
Еще это можете прочитать https://www.sql.ru/articles/mssql/2005/030701ChangesLogging.shtml
9 дек 09, 17:00    [8042200]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
Megabyte
Member

Откуда: ближайшее заМКАДье
Сообщений: 4889
Anmu
Подскажите, пожалуйста, есть приложение (на Delphi 5). Из приложения пользователь может корректировать, просматривать записи БД. Запрет только на удаление.
Можно ли отследить, когда пользователь "руками" или через Query Analyzer вносит изменения в таблицу. Как это сделать?
SQL Server 2000 SP4

Триггеры не судьба использовать? Естественно предварительно создав нужные таблицы для логирования данных.

+ есть переменная что-то вроде App_Name - имя приложения(правда не знаю точно, есть ли в 2000м). Можно отследить, по имени...
9 дек 09, 17:03    [8042244]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
Все это читал.....
Каким образом отследят, что именно я делаю апдейт в таблице?(без трассировки)

Отскрываю Query Analyzer
Пишу санчала Select * from T1
А потом обновляю ВСЕ поля в этой таблице?

Как узнают, кто сделал обновления?
9 дек 09, 17:06    [8042276]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
Glory
Member

Откуда:
Сообщений: 104760
--__Александр__--
Все это читал.....
Каким образом отследят, что именно я делаю апдейт в таблице?(без трассировки)

Отскрываю Query Analyzer
Пишу санчала Select * from T1
А потом обновляю ВСЕ поля в этой таблице?

Как узнают, кто сделал обновления?

- Прочитать ссылки
- Написать триггера
- Сделать выборки из соответствующих таблиц аудита
9 дек 09, 17:11    [8042330]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
Anmu
Member

Откуда:
Сообщений: 50
Всем большое спасибо! буду читать, разбираться...
9 дек 09, 17:16    [8042382]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
Разобрался.
Думал в тригере не отловить юзера через current_user.
9 дек 09, 17:20    [8042423]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
Пилотажный
Member

Откуда: NGC 6137
Сообщений: 2771
Anmu
Мне необходимо отследить только те изменения, которые делаются не из моего приложения, любым другим способом. Необязательно что это изменение будет последнее, меня интересует какое поле, во сколько, кем (или с какого ip) и на что было исправлено.


Наверно проще всего - таблицы двойники (и так делаю, если данные не так часто меняются), где добавлены поля КТО, С КАКОГО КОМПА, КАКОЕ ПРИЛОЖЕНИЕ, ЧТО, КОГДА, которые заполняются из триггеров на основные таблицы.
Каждое изменение в таблице - новая строка.

все поля после (delete - что было удалено соотв.)
user (current_user, session_user, ...) --__Александр__-- логинится в коннекте, логин и показан
host_name()
app_name()
по триггеру INSERT, UPDATE, DELETE
getdate()
9 дек 09, 17:47    [8042620]     Ответить | Цитировать Сообщить модератору
 Re: Пользователи, доступ и безопасность...  [new]
Пилотажный
Member

Откуда: NGC 6137
Сообщений: 2771

Наверно проще всего - таблицы двойники (и так делаю, если данные не так часто меняются),

и job-ом ночами очищать журналы от уже неактуальных записей (или переносить эти данные на другие носители)
9 дек 09, 18:00    [8042768]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить