Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как отловить событие OnConnect / 14 сообщений из 14, страница 1 из 1
16.12.2002, 19:30
    #32080095
Oleg Afanasiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие OnConnect
Можно ли как-то отловить событие onconnect к Ораклу именно на уровне сервера, чтобы выполнить проверку юзера (на манер комплексной
проверки пароля пользователя при изменении),
как только он приконнектился?
...
Рейтинг: 0 / 0
16.12.2002, 20:44
    #32080100
ShgGena
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие OnConnect
Da
Nado ispolzovat trigger na sobitie on connect
see: http://otn.oracle.com/docs/products/oracle9i/doc_library/release2/appdev.920/a96590/adg14evt.htm#998000
...
Рейтинг: 0 / 0
16.12.2002, 20:45
    #32080101
ShgGena
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие OnConnect
Vinovat ne on connect a ON LOGON
...
Рейтинг: 0 / 0
17.12.2002, 10:57
    #32080284
Oleg Afanasiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие OnConnect
Виноват, не указал версию сервера
Оракл 8.1.7
При попытке сделать

CREATE OR REPLACE TRIGGER On_Logon
AFTER LOGON
on KREDIT.KREDIT
BEGIN
raise_application_error(-20002, 'LALALA');
END;

(Error): ORA-30506: system triggers cannot be based on tables or views
...
Рейтинг: 0 / 0
17.12.2002, 11:09
    #32080298
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие OnConnect
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create or replace trigger tal_db
after logon on database
declare
  v_username v$session.username%type;
begin
  select username
  into v_username
  from v$session
  where  1 = 1 
    and audsid = sys_context('userenv', 'sessionid');
end;
/
...
Рейтинг: 0 / 0
17.12.2002, 12:25
    #32080342
Oleg Afanasiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие OnConnect
Мда... поспешил вобщем ... надо было доку сначала до конца дочитать...

Дело вот в чём. Я хотел не пускать юзера в базу по определённым событиям
(выходные например и др) А оказывается что триггер то этот AFTER LOGON.
Тоесть юзер входит, а после уже срабатывает триггер.
Кстати пытался посылать сообщение с помощью raise_application_error() из триггера -- безрезультатно....

Можно конечно и через job это сделать(забрать право создавать сессию или connect), но хотелось бы организовать всё красиво.

Что посоветует всезнающий All?
...
Рейтинг: 0 / 0
17.12.2002, 13:02
    #32080379
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие OnConnect
А попробуй узнать в триггере sid, serial# и убить сессию через execute immediale 'alter system kill session (sid, serial#)'. Или она выругается, что саму небя убить не могу? Можно попытаться создать job с nextdate=>sysdate и там это сделать.

Да, если будешь экспериментировать- поставь условие убиения, а то вдруг получиться, что станут все сессии убиваться;)
...
Рейтинг: 0 / 0
17.12.2002, 16:55
    #32080631
DimaR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие OnConnect
Подобное опсуждалось раньше поищи топик
USER locking
...
Рейтинг: 0 / 0
18.12.2002, 12:56
    #32081000
Oleg Afanasiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие OnConnect
>Подобное опсуждалось раньше поищи топик
>USER locking
Собственно если не изменяет память, я этому человеку сам и советовал
запустить job который в 00:00 смотрел бы какой наступил день и отключал нужного юзера(лочил,отрубал,отбирал права и т.д.)

Просто хотелось ещё более красивый вариант ;_)
...
Рейтинг: 0 / 0
18.12.2002, 14:43
    #32081139
DimaR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие OnConnect
Яговорил не про JOB а про пользовательскую функцию авторизации

а вот убить текущую сессию из тригера on logon у меня не получилось, ругаеться, говорит нехочу ora-00027 :)
...
Рейтинг: 0 / 0
18.12.2002, 15:18
    #32081169
Oleg Afanasiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие OnConnect
Если ты о комплексной проверке пароля то это не то.
Я тоже сначала обрадовался что это то что надо,
но функция о которой ты говоришь и которая упоминается в том треде _проверяет_ пароль при его _изменении_
юзером, чтобы его задание подчинялось каким-то правилам.
Я это уже попробовал.
...
Рейтинг: 0 / 0
18.12.2002, 23:41
    #32081441
Alex_M
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие OnConnect
Raise_application_error срабатывает, если user не DBA...
...
Рейтинг: 0 / 0
19.12.2002, 12:22
    #32081664
DimaR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие OnConnect
Действительно вот это работает!!!:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
create or replace trigger TG_A_LOGON
  after LOGON on DATABASE
begin
    if ora_login_user='TRAVEL' then   
      null;raise LOGIN_DENIED;
    end if;
end TG_A_LOGON;
...
Рейтинг: 0 / 0
19.12.2002, 13:41
    #32081810
Oleg Afanasiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие OnConnect
>Raise_application_error срабатывает, если user не DBA...
Да действительно ты прав.
Теперь всё ок.
У юзера над которым я проводил эксперименты был грант DBA,
я просто забыл права забрать
;P

ВСЕМ СПАСИБО
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как отловить событие OnConnect / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]