Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 context не работает с DBA  [new]
rolling_kz
Member

Откуда:
Сообщений: 42
Проблема, помогите!

действия от имени хозяина схемы (с правами DBA)

процедура по созданию контекстной переменной:
create or replace package body fcm_Context_Pkg as
  begin
    dbms_session.set_context('fcm_app','tst','check');
  end;
end;
создаем контекст:
CREATE OR REPLACE CONTEXT fcm_app USING fcm_Context_Pkg;

триггер на вход в базу:
create or replace trigger on_logon
after logon on database
begin
    fcm_Context_Pkg.set_param;
end;


так вот обычные пользователи видят результат запроса:
select sys_context('fcm_app','tst') from dual
- check

а хозяеин схемы (с правами DBA)
видит пустоту.

причем от мени юзера я вижу контекст по запросу
select * from all_context
а хозяин не видит!!!

причем в dba_context fcm_app видно.

Подскажите, в чем дело, ведь и хозяин схемы должен видеть контест fcm_app и переменные в нем.
22 май 07, 13:29    [4168323]     Ответить | Цитировать Сообщить модератору
 Re: context не работает с DBA  [new]
йцукенгшщзхъ
Guest
а логон триггер отрабатывает для этого дба?
22 май 07, 14:17    [4168688]     Ответить | Цитировать Сообщить модератору
 Re: context не работает с DBA  [new]
rolling_kz
Member

Откуда:
Сообщений: 42
точно, не выполняется.

Интересно почему, сейчас буду искать причину.
Может у Вас есть ответ, буду признателен.
22 май 07, 14:38    [4168847]     Ответить | Цитировать Сообщить модератору
 Re: context не работает с DBA  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
rolling_kz
Может у Вас есть ответ, буду признателен.
А точный текст триггера не приведете?
22 май 07, 14:44    [4168876]     Ответить | Цитировать Сообщить модератору
 Re: context не работает с DBA  [new]
rolling_kz
Member

Откуда:
Сообщений: 42
вот он
create or replace trigger on_logon
after logon on database
begin
 if(user!='SPOT' and user!='DBSNMP') then
    fcm_Context_Pkg.set_region;
 end if;
 insert into log (log_date, user_name)
 values (sysdate, user);
end;
22 май 07, 14:57    [4168978]     Ответить | Цитировать Сообщить модератору
 Re: context не работает с DBA  [new]
HX
Member

Откуда: Moscow
Сообщений: 2454
У DBA роли по-умолчанию присутствует привилегия ADMINISTER DATABASE TRIGGER
автор

Any user granted the ADMINISTER DATABASE TRIGGER system privilege can still
connect : instead of getting the error causing the session to be terminated,
the error is recorded in the alert.log and a trace file in user_dump_dest.

Вам нужно создать свою роль администратора DBA_APP_ADMIN без этой привилегии, но соедржающую остальные привелегии роли DBA, и назначать своим пользователям.
22 май 07, 15:11    [4169105]     Ответить | Цитировать Сообщить модератору
 Re: context не работает с DBA  [new]
HX
Member

Откуда: Moscow
Сообщений: 2454
HX

Вам нужно создать свою роль администратора DBA_APP_ADMIN без этой привилегии, но соедржающую остальные привелегии роли DBA, и назначать своим пользователям.

Несколько вперед мысль убежала от реальности... ..
Для начала, конечно, убедитесь, что в триггере была ошибка при выполнении от вашего пользователя. поищите трассировочные файлы и записи в alert.log :-)
22 май 07, 15:36    [4169323]     Ответить | Цитировать Сообщить модератору
 Re: context не работает с DBA  [new]
rolling_kz
Member

Откуда:
Сообщений: 42
HX
У DBA роли по-умолчанию присутствует привилегия ADMINISTER DATABASE TRIGGER
автор

Any user granted the ADMINISTER DATABASE TRIGGER system privilege can still
connect : instead of getting the error causing the session to be terminated,
the error is recorded in the alert.log and a trace file in user_dump_dest.

Вам нужно создать свою роль администратора DBA_APP_ADMIN без этой привилегии, но соедржающую остальные привелегии роли DBA, и назначать своим пользователям.


я что-то не понял причем тут ADMINISTER DATABASE TRIGGER
- у меня не срабатывает триггер для DBA, а для обычного юзера срабатывает.
23 май 07, 09:03    [4172091]     Ответить | Цитировать Сообщить модератору
 Re: context не работает с DBA  [new]
HX
Member

Откуда: Moscow
Сообщений: 2454
rolling_kz
у меня не срабатывает триггер для DBA, а для обычного юзера срабатывает.

Как проверяли?..
Я имел в виду может он срабатывает, а в нем происходит ошибка, тогда вы соединяетесь с базой, а просто лишь создается трассировочный файл и запись в алерте.
23 май 07, 09:18    [4172130]     Ответить | Цитировать Сообщить модератору
 Re: context не работает с DBA  [new]
rolling_kz
Member

Откуда:
Сообщений: 42
проверял просмотром таблицы лог, при входе обычным юзером там появляется запись, а при входе DBA записи нету.
23 май 07, 09:20    [4172139]     Ответить | Цитировать Сообщить модератору
 Re: context не работает с DBA  [new]
HX
Member

Откуда: Moscow
Сообщений: 2454
rolling_kz
проверял просмотром таблицы лог, при входе обычным юзером там появляется запись, а при входе DBA записи нету.

нет ли ошибок в алерте?..
23 май 07, 09:29    [4172178]     Ответить | Цитировать Сообщить модератору
 Re: context не работает с DBA  [new]
rolling_kz
Member

Откуда:
Сообщений: 42
да есть ошибочка:

ksedmp: internal or fatal error
ORA-04088: error during execution of trigger 'FC2.ON_LOGON'
ORA-01403: no data found
ORA-06512: at "FC2.FCM_CONTEXT_PKG", line 11
ORA-06512: at line 3


Ну кажется все понятно, спасибо.
23 май 07, 09:39    [4172216]     Ответить | Цитировать Сообщить модератору
 Re: context не работает с DBA  [new]
rolling_kz
Member

Откуда:
Сообщений: 42
сорри, Вы наверное скажете. что мог сразу алерты посмотреть, но нам доступа не дают к алертам, надо звонить просить переслать и т.д.
23 май 07, 09:41    [4172239]     Ответить | Цитировать Сообщить модератору
 Re: context не работает с DBA  [new]
HX
Member

Откуда: Moscow
Сообщений: 2454
rolling_kz
да есть ошибочка:

ksedmp: internal or fatal error
ORA-04088: error during execution of trigger 'FC2.ON_LOGON'
ORA-01403: no data found
ORA-06512: at "FC2.FCM_CONTEXT_PKG", line 11
ORA-06512: at line 3


Ну кажется все понятно, спасибо.

:-)

offtop:

Господа, а давайте теперь обсудим дизайн!..
Какие соображения за и против использования владельцем схемы роли DBA?..
Мне кажется, что для application должна быть своя роль, пусть даже с широкими правами, но своя?..
23 май 07, 09:42    [4172242]     Ответить | Цитировать Сообщить модератору
 Re: context не работает с DBA  [new]
rolling_kz
Member

Откуда:
Сообщений: 42
ну я сказал для упрощения, DBA хозяину схемы (разработчику) и у нас не дали :)
у нас вот так дано:

create user FC2
  identified by ""
  default tablespace FC_128K_TBL
  temporary tablespace TMP
  profile DEFAULT
  quota unlimited on fc_128k_idx
  quota unlimited on fc_128k_tbl
  quota unlimited on temp
  quota unlimited on users;
-- Grant/Revoke object privileges 
grant execute on SYS.DBMS_RLS to FC2;
grant execute on SYS.DBMS_SESSION to FC2;
grant execute on XDB.DBMS_XMLDOM to FC2;
-- Grant/Revoke role privileges 
grant connect to FC2;
grant imp_full_database to FC2;
grant resource to FC2;
-- Grant/Revoke system privileges 
grant alter user to FC2;
grant create session to FC2;
grant create user to FC2;
grant drop user to FC2;
23 май 07, 09:49    [4172304]     Ответить | Цитировать Сообщить модератору
 Re: context не работает с DBA  [new]
Elic
Member

Откуда:
Сообщений: 29976
HX
Господа, а давайте теперь обсудим дизайн!..
Какие соображения за и против использования владельцем схемы роли DBA?..
Владелец на то и владелец, что является "хранилищем" объектов и под ним штатно никогда не работают. Доступность каких бы то ни было ролей владельцу не имеет никаго значения для хранимого кода. Так что наличие роли DBA у владельца как бы ни на что не влияет. Но иногда это может быть очень удобно для выполнения разовых работ под владельцем.
23 май 07, 10:04    [4172424]     Ответить | Цитировать Сообщить модератору
 Re: context не работает с DBA  [new]
HX
Member

Откуда: Moscow
Сообщений: 2454
Elic
HX
Господа, а давайте теперь обсудим дизайн!..
Какие соображения за и против использования владельцем схемы роли DBA?..
Владелец на то и владелец, что является "хранилищем" объектов и под ним штатно никогда не работают. Доступность каких бы то ни было ролей владельцу не имеет никаго значения для хранимого кода. Так что наличие роли DBA у владельца как бы ни на что не влияет. Но иногда это может быть очень удобно для выполнения разовых работ под владельцем.

Ну а какие задачи application могут требовать привилегий роли DBA?..
Разовые операции можно производить из другого пользователя DBA. В чем приемущества такого дизайна?.. Опасность я вижу, приемущество нет?..
23 май 07, 10:18    [4172520]     Ответить | Цитировать Сообщить модератору
 Re: context не работает с DBA  [new]
Elic
Member

Откуда:
Сообщений: 29976
HX
Опасность я вижу, приемущество нет?..
Про гипотетическую опасность согласен.
Но бывают и односхемные экземпляры БД. А там зачастую нет смысла плодить административные сущности.
23 май 07, 10:53    [4172769]     Ответить | Цитировать Сообщить модератору
 Re: context не работает с DBA  [new]
HX
Member

Откуда: Moscow
Сообщений: 2454
Elic
А там зачастую нет смысла плодить административные сущности.

Простите, за утрирование, но так можно и все в sys схеме харнить .. Я просто никогда не мог себе представить такую бд.
23 май 07, 10:55    [4172786]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить