Помогите новичку

Гость нов
Дата: 26.05.2006 08:28:28
Доброго времени суток!
Создал несколько таблиц в базе от пользователя A. Для него же сделал приложение на Forms. По незнанию возникла проблема со схемами. Создал пользователя B. От пользователя B приложение не работает(таблицы созданы под схемой A, а в приложении не в именах таблиц не указанно имя схемы).
Может кто подскажет как без внесения изменений в приложение запустить форму.
Геннадич
Дата: 26.05.2006 08:32:56
синонимы
gaden0k
Дата: 26.05.2006 08:38:33
Геннадич
синонимы

Каждому пользователю на каждую таблицу,функцию и т.д. промисывать синонимы??? Или можно как-то на всю схему.
amh
Дата: 26.05.2006 08:47:36
Создай роль, дай необходимые гранты (select, update, ...) на таблицы и т.д. схемы А этой роли, предоставь роль пользователю В.
Геннадич
Дата: 26.05.2006 08:48:32
gaden0k
Каждому пользователю на каждую таблицу,функцию и т.д. промисывать синонимы??? Или можно как-то на всю схему.

А почему бы и нет, если разработчик не соизвоил точно обащаться к обектам. Ну если лень для каждого - тогда один раз и для всех публичные.
Геннадич
Дата: 26.05.2006 08:51:11
2 amh
не внимательно читаем вопросы, речь шла "...в приложении в именах таблиц не указанно имя схемы..."
Вячеслав Любомудров
Дата: 26.05.2006 08:57:01
tst> create or replace trigger aft_lgn
  2  after logon on database
  3  begin
  4      if user='U1' then
  5          execute immediate 'alter session set current_schema=u2';
  6      end if;
  7  end;
  8  /

Trigger created.

tst> connect u1/u1@tst
Connected.
tst> select sys_context('USERENV', 'CURRENT_SCHEMA') from dual;

SYS_CONTEXT('USERENV','CURRENT_SCHEMA')
-----------------------------------------------------------------------
U2
Вадиман
Дата: 26.05.2006 09:13:49
Если вас не беспокоят возможные нюансы восстановления схемы, то можете просто PUBLIC SYNONYMS создать на все объекты в схеме A. Они будут видны всем. Но ведь помимо этого еще и гранты на SELECT для пользовтеля B нужны