|
Свой "current_user"?..
|
|||
---|---|---|---|
#18+
Помогите, пожалуйста! В базе данных создан только один логин . "Пользовательские логины" для входа в программу различаются лишь на уровне таблички "Пользователи", куда внесено имя и выдуманный пользовательский логин. Как можно в триггере распознавать, какой именно пользователь сейчас работает? Создать что-то вроде своего current_user, но чтобы в нем был выдуманный логин. Через current_connection не получится, так как к базе подключена только программа-сервер, она обрабатывает обращения всех пользователей и соединение к базе по-сути одно. Может как-то хитро переменную выставлять через rdb$set_context? Но только тогда пространство имен системное SYSTEM нельзя использовать, а при переподключении к базе переменные исчезают. Как быть? Может кто сталкивался? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2018, 18:37 |
|
Свой "current_user"?..
|
|||
---|---|---|---|
#18+
___Nikolayпри переподключении к базе переменные исчезают. Значит при переподключении к базе надо заново им присвоить значения. В чём проблема-то? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2018, 18:42 |
|
Свой "current_user"?..
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, спасибо, попробую! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2018, 19:08 |
|
Свой "current_user"?..
|
|||
---|---|---|---|
#18+
___Nikolayона обрабатывает обращения всех пользователей и соединение к базе по-сути одно тогда имя пользователя в триггер никак не передать. Ведь разные пользователи работают в одном коннекте, а значит какая-то context-переменная постоянно будет меняться. Или коннекты все-таки разные? Иначе что это за система-то, где всё упирается в один коннект? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.08.2018, 21:45 |
|
Свой "current_user"?..
|
|||
---|---|---|---|
#18+
___NikolayЧерез current_connection не получится, так как к базе подключена только программа-сервер, она обрабатывает обращения всех пользователей и соединение к базе по-сути одно. ну так может и не надо перекладывать эти проблемы на субд, а решать на уровне сервиса? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2018, 07:31 |
|
Свой "current_user"?..
|
|||
---|---|---|---|
#18+
___Nikolay, web? Если да, то для хранения сессионных переменных там обычно используют http сессии которые к БД прямого отношения не имеют. Грубо говоря в web чем меньше лишний раз обращаешься к БД (подключаешься) тем лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2018, 09:57 |
|
Свой "current_user"?..
|
|||
---|---|---|---|
#18+
Помимо перечисленного, можно также применить подход а-ля Дельфийские методы объекта - первым параметром передавать UserID (как Self). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2018, 14:22 |
|
Свой "current_user"?..
|
|||
---|---|---|---|
#18+
Можно ещё при подключении занести user_id в поле таблицы GTT (PRESERVE ROWS) а далее сделать ссылку на неё в объектах (SP,triggers etc). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2018, 14:29 |
|
Свой "current_user"?..
|
|||
---|---|---|---|
#18+
AltHasp, это мало чем отличается от контекстных переменных, которые у автора пропадают, потому что соединения с БД не постоянное. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2018, 14:59 |
|
Свой "current_user"?..
|
|||
---|---|---|---|
#18+
Симонов Денис, у меня 100 лет назад было приложение, в котором user_name передавалось в процедуру. И любые действия с БД производились только процедурами. Поэтому с пониманием user_name никогда проблем не было. У автора проблема проектирования, он, видимо, еще не решил, что делать, но уже из веба или трехзвенки у него в базу лезет только один юзер. И, внезапно, надо чтобы юзер этот "различался" в триггере. Так вот, в ТРИГГЕРЕ он НИКАК различаться не сможет, если только в изменяемой таблице нет столбца "имя юзера" или типа того. Так что, не надо людям давать несбыточные надежды :-) Если они себе сами устроили геморрой, так пусть с ним и борются. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2018, 22:57 |
|
|
start [/forum/topic.php?fid=40&msg=39692034&tid=1561010]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
9ms |
get forum data: |
1ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 152ms |
0 / 0 |