powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / определить из какого приложения входит юзер
17 сообщений из 17, страница 1 из 1
определить из какого приложения входит юзер
    #32128095
Фотография Oleg Afanasiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотелось бы отлавливать на событии after logon из какого
приложения заходит пользователь. Если приложение сторонних
разработчиков (не писанное мной тоесть ;_) ) то отказывать в доступе.

gminter постил подобный триггер , но разобраться в его
функционировании я так и не смог :(

dbms_application_info не подходит

Может быть у кого-то есть другие идеи?
...
Рейтинг: 0 / 0
определить из какого приложения входит юзер
    #32128116
Блин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть такой вариант.
создаешь роль (rls). напихиваешь её чем надо.
потом предоставляешь её юзеру (usr) но без умолчания.
т.е. чтобы по умолчанию она не была включена
grant role rls to user usr;
grant create session to usr;
alter user usr default role none;
потом когда заходишь из приложения под usr делаешь set role rls;
можно парольчик прицепить к роли (даже НУЖНО) чтобы в плюсе не смогли особо одаренные выполнить set role rls;
таким образом защитишь приложение. и отделишь схему с данными от простого юзера, пользующего это схему.
и никто кроме приложухи не сможет к схеме обратиться.
...
Рейтинг: 0 / 0
определить из какого приложения входит юзер
    #32128117
ora600
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, прочитать PROGRAM из v$session . А если я переименую sqlplus в разрешенную прогу ? ;-)
...
Рейтинг: 0 / 0
определить из какого приложения входит юзер
    #32128124
Фотография Oleg Afanasiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я думаю до такого юзер не додумается %-)
;_))

А какие идеи с триггером от gminter ??
Насколько я понял на программе-клиенте должен быть сокет из которого
триггер читает???

Цитирую:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
CREATE OR REPLACE TRIGGER AfterConnect after logon on database
declare
 s_rec sys.v_$session%rowtype;
 ip_address varchar2( 64 );
 ip_con utl_tcp.connection;
 semafor varchar2( 64 );
 n number;
 s varchar( 512 );
 b boolean;
begin
  select * into s_rec from sys.v_$session t 
      where t.audsid = sys_context('USERENV', 'SESSIONID');     
  if not ((s_rec.username is null) or (s_rec.username = 'GMINTER')
  begin
    ip_address := sys_context('USERENV', 'IP_ADDRESS');     
    ip_con := utl_tcp.open_connection(ip_address,  8050 );
    n := utl_tcp.available(ip_con,  0 );
    semafor := utl_tcp.get_text(ip_con, n);
    utl_tcp.close_connection(ip_con);
  exception when others then
  semafor := 'NONE';
  end;
   if semafor <> 'PASSWORD' then
   raise_application_error (- 20000 , 'Вы запустили не ту программу :)');
   end if;  
  end if;   
end;
 
 Смысл примера в чем - у слегка продвинутого пользователя иногда возникает желание полазить со своими правами по базе при помощи SQL-навигатора или чего-то там еще, поэтому после коннекта мы по TCP спрашиваем у клиента-программы ПАРОЛЬ, и если ответ нам не нравится, то вместо коннекта юзер получает Exception )



конец цитаты
...
Рейтинг: 0 / 0
определить из какого приложения входит юзер
    #32128142
Блин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к сожалению проверить не могу т. к. у меня 8.1.5 а там еще utl_tcp нет.
но судя по тексту ты прав. триггер получает 'PASSWORD' и тогда пропускает
иначе вываливается
так это еще страдать надо в клиенте сокет из которого читать это слово!!!
что-то заворочено-наворочено.
лучше используй роли, как я сказал выше. тогда 100 пудов защитишься
...
Рейтинг: 0 / 0
определить из какого приложения входит юзер
    #32128175
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в 9ке появился механизм, который позволяет элегантно убрать пароль из пользовательского приложения
...
Рейтинг: 0 / 0
определить из какого приложения входит юзер
    #32128205
antonprk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что замеханизм?
в каком направлении копать?
...
Рейтинг: 0 / 0
определить из какого приложения входит юзер
    #32128214
EthernalWonderer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А ещё можно дать пользователю только кусочек пароля, остальную часть которого при коннекте дописывает клиентская программа.
Только не надо забывать, что администраторы - тоже люди, и жёстко прописанная в приложнии фича очень скоро станет общеизвестной. Так что придётся ждать ответа от gminter'a
...
Рейтинг: 0 / 0
определить из какого приложения входит юзер
    #32128224
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
точно уже и не помню. Посмотри в доке что-ть типа "application role"
...
Рейтинг: 0 / 0
определить из какого приложения входит юзер
    #32128489
ShgGena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vse eto sovershenno ne imeet smisla esly user connectitsya cherez iz java
connection pool s ispolzovaniem jdbc thin driver.
connect practicheski polnostyu obezlichen krome:

username/password
nomer pid polzovatelskogo processa v unix/linux

dlya win razlichit prakticheski nelzya.
...
Рейтинг: 0 / 0
определить из какого приложения входит юзер
    #32128490
Фотография Oleg Afanasiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот потому и актуален вопрос о общении сокета с системным триггером
...
Рейтинг: 0 / 0
определить из какого приложения входит юзер
    #32128507
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_application_info не подходит

A pochemy ne podxodit?

IMHO (ne znaia podrobnostey mogy bit' ne prav):

mozhno legko peredat' (DAZHE cherez java pool)
application login user/pass i kakuu-nibud'
sikretnuu stroky po kotoroj mozhno yznat'
svou programmy .

T.o. server vsegda bydet znat' esli eto SVOIA
programma i kto user/pass konkretno.

JJ
...
Рейтинг: 0 / 0
определить из какого приложения входит юзер
    #32128519
Фотография Oleg Afanasiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
java я не знаю совсем
А этот пакет не подходит так как мне нужно юзера
отключать от базы если он заходит не из моего приложения
...
Рейтинг: 0 / 0
определить из какого приложения входит юзер
    #32128542
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ia ne znau tonkuu mexaniky priamogo logina.

Moznop poprobovat' sleduushee:

-- Client-Applicacia sprashivaet user/pass
-- Client-Applicacia delaet login s user/pass
-- esli uspeshno, Clent-Applicacia vistavliaet
"sikretnuu stroky" cherez dbms_application_info
na dannuu conection
-- Client-Applicacia vidaet OK usery
-- user polizuet Client-Applicaciu, posilaet kakoy-nibud' zapros
-- Server-Application proveriaet esli zapros
prishel po konnekcii gde est' "sikretnaia stroka" v
"application_info" table (ne pomny tochnoe nazvanie tablici)
-- esli stroki net -- poslat' zapros v baniu i otkluchit' konekt

Glavnoe, zapriatat' xorosho "sikretnuy stroky"

Podoidet?

JJ
...
Рейтинг: 0 / 0
определить из какого приложения входит юзер
    #32128553
ShgGena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 javajdbc
>>> mozhno legko peredat' (DAZHE cherez java pool)

Pri uslovii chto ti imeesh pravo i dostup k prilogeniyu,
a esli ono chugoe?
U menya imenno etot sluchay. 10 Dynamo Application servers i
kagdiy imeet svoy connection pool. (ip ne opoznaetsya poskolku
rabotaye cherez proxy).
...
Рейтинг: 0 / 0
определить из какого приложения входит юзер
    #32128560
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ok, esli net dostypa k prilozhniaim i esli
net vozmozhnost' identificirovat' mazhiny
i applicaciu, to zadacha voobshe nevipolnima
(mne tak kazhetsia)

Код: plaintext
1.
2.
Хотелось бы отлавливать на событии after logon из какого 
приложения заходит пользователь. Если приложение сторонних 
разработчиков (не писанное мной тоесть ;_) ) то отказывать в доступе. 


Ia predpologal posle visheprivedennoy frazi chto EST" dostyp
k client-applicacii.

JJ
...
Рейтинг: 0 / 0
определить из какого приложения входит юзер
    #32129887
EthernalWonderer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что если в ON LOGON запускать JOB, который через 0,5 сек. после коннекта проверяет что-либо, например, наличие "флажка" с именем пользователя и AUDSID, и, если не находит, рубит эту сессию.
А в клиентской части первым SQL-запросом вешать этот самый флажок, а по выходу - снимать.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / определить из какого приложения входит юзер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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