Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Администрирование Oracle Database:
- Установка и настройка базы данных
- Обновление, применение патчей
- Оптимизация, настройка производительности
- Обучение, подготовка персонала, оптимизация
  • Страница:
  • 1
  • 2
  • 3

ТЕМА:

Oracle: из какого приложения входит юзер 12 года 8 мес. назад #3311

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

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

dbms_application_info не подходит

Может быть у кого-то есть другие идеи?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle: из какого приложения входит юзер 12 года 8 мес. назад #3312

есть такой вариант.
создаешь роль (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;
таким образом защитишь приложение. и отделишь схему с данными от простого юзера, пользующего это схему.
и никто кроме приложухи не сможет к схеме обратиться.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle: из какого приложения входит юзер 12 года 8 мес. назад #3313

Привет)))
ну, прочитать PROGRAM из v$session . А если я переименую sqlplus в разрешенную прогу ? ;-)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle: из какого приложения входит юзер 12 года 8 мес. назад #3314

я думаю до такого юзер не додумается %-)
;_))

А какие идеи с триггером от gminter ??
Насколько я понял на программе-клиенте должен быть сокет из которого
триггер читает???
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 )

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle: из какого приложения входит юзер 12 года 7 мес. назад #3315

к сожалению проверить не могу т. к. у меня 8.1.5 а там еще utl_tcp нет.
но судя по тексту ты прав. триггер получает 'PASSWORD' и тогда пропускает
иначе вываливается
так это еще страдать надо в клиенте сокет из которого читать это слово!!!
что-то заворочено-наворочено.
лучше используй роли, как я сказал выше. тогда 100 пудов защитишься

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Oracle: из какого приложения входит юзер 12 года 7 мес. назад #3316

Если я не ошибаюсь, в 9ке появился механизм, который позволяет элегантно убрать пароль из пользовательского приложения ))))

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
  • 2
  • 3
Время создания страницы: 0.226 секунд