![]() |
Модераторы: Akella |
![]() ![]() ![]() |
|
TheCetus |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 9.3.2006 Репутация: нет Всего: 2 |
Кто сталкивался со следующей задачей: необходимо вести протоколирование действи пользователей. Т.е фиксировать удаление, добавление, модификацию данных и другие действия следующим образом: в определенную табличку на базе записывать имя пользователя производившего действия из системной таблицы users, и данные об операции. Все манипуляции с БД идут через хранимые процедуры, поэтому тип операции определить не сложно.
1. Как определить момент подключения и отключения от БД и зафиксировать его? 2. Как определить имя подключившегося пользователя? 3. Есть еще какие-нибудь предложения по реализации? |
|||
|
||||
TheCetus |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 9.3.2006 Репутация: нет Всего: 2 |
Как в хранимой процедуре на сервере определить имя пользователя вызвавшего процедуру?
|
|||
|
||||
TheCetus |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 9.3.2006 Репутация: нет Всего: 2 |
три дня поисков увенчались успехом. Есть контекстная переменная user
имя пользователя можно получить следующим образом: select user from rdb$database into :puser_name |
|||
|
||||
TheCetus |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 9.3.2006 Репутация: нет Всего: 2 |
Alex, думаю есть резон поместить этот вопрос с фАК
|
|||
|
||||
xgm |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 10.8.2005 Репутация: 1 Всего: 1 |
Может CURRENT_USER ?
|
|||
|
||||
vv3 |
|
||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 29.4.2006 Репутация: нет Всего: нет |
Что касается вносимых юзером изменений, то я на все интересующие меня таблицы делаю их дубликаты по следующей схеме:
и записываю в нее через триггера AFTER_UPDATE(INSERT, DELETE) За счет таких таблиц можно даже кое-какие неверные изменения откатить... |
||||||||||
|
|||||||||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
У меня по-другому:
сделана таблица пользователей прямо в базе, ну получается так, что все пользователи фактически работают под одним именем, только они об этом не знают. У вот в таблице есть имя пользователя, пароль и код. Можно сделать отдельную таблицу действий и туда записывать код пользователя, имя таблицы, ID записи и действие. У меня пишется всё через клиентское приложение. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Interbase" | |
|
Обязательно указание: 1. Версию InterBase (Firebird, Yaffil) 2. Способа доступа (ADO, BDE, IBX и т.д.)
Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Firebird, Interbase | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |