У нас есть решение, которое работает с Oracle EBS и касается пользователей, присутствующих в костюме Oracle EBS, а также ролей и ответственности, связанных с ними. Раньше мы извлекали данные из FND_USER
и других связанных таблиц.
Мы создали одного пользователя с ограниченным доступом и создали один синоним для чтения данных из таблицы FND_user.
Синоним создан успешно, но когда мы извлекаем данные с помощью: Select * from FND_USER
вошли в систему как созданный пользователь, мы получаем следующую ошибку :
ORA-00980: перевод синонима больше не действителен 00980. 00000 - "перевод синонима больше не действителен"
Те же разрешения предоставляются пользователю в версии 12.2.4
, и все работает нормально.
Синоним создается с помощью следующей команды:
CREATE OR REPLACE SYNONYM FND_USER for APPS.FND_USER;
Мы создали одного пользователя и назначили роль, которая содержит различные разрешения, как указано ниже.
Разрешения администратора 1. Права присутствуют в пакетах Oracle: Ответ: Пакеты имеют права Invoker.
create role ${new role};
create user ${new user} identified by ${password};
grant create session to ${new user};
grant create synonym to ${new user};
grant ${new role} to ${new user};
Предоставьте разрешения новой роли, созданной на предыдущем шаге (${new role}):
grant select on APPS.FND_PRODUCT_GROUPS to ${new role};
grant select on APPS.FND_USER to ${new role};
grant select on SYS.DBA_USERS to ${new role};
grant select on APPS.FND_RESPONSIBILITY_VL to ${new role};
grant select on APPS.FND_APPLICATION_VL to ${new role};
grant select on APPS.FND_DATA_GROUPS to ${new role};
grant select on APPS.FND_USER_RESP_GROUPS_ALL to ${new role};
grant select on DUAL to ${new role};
grant select on APPS.PER_ALL_PEOPLE_F to ${new role};
grant select on APPS.RA_CUSTOMERS to ${new role};
grant select on APPS.FND_MENUS to ${new role};
grant select on APPS.FND_REQUEST_GROUPS to ${new role};
grant select on APPS.FND_APPLICATION to ${new role};
grant select on APPS.FND_DATA_GROUP_UNITS to ${new role};
grant select on APPS.FND_APPLICATION_TL to ${new role};
grant select on APPS.FND_RESPONSIBILITY to ${new role};
grant select on APPS.WF_ROLES to ${new role};
grant select on APPS.WF_USER_ROLES to ${new role};
grant select on APPS.WF_LOCAL_ROLES to ${new role};
grant select on APPS.WF_ALL_ROLES_VL to ${new role};
grant select on APPS.WF_ROLE_HIERARCHIES to ${new role};
grant select on APPS.FND_REQUEST_GROUP_UNITS to ${new role};
• Поскольку пакеты имеют права вызывающего, мы выполняем следующее:
grant execute on APPS.SP_XXX to ${new role};
Где пакет xxx — это FND_USER_PKG, FND_RESPONSIBILITY_PKG, WF_LOCAL_SYNCH, FND_WEB_SEC или FND_GLOBAL.
Например, предоставьте выполнение в APPS.SP_FND_USER_PKG для ${новой роли};
3. Войдите под новым именем пользователя ${new user} и создайте следующий синоним:
create synonym FND_PRODUCT_GROUPS for APPS.FND_PRODUCT_GROUPS;
create synonym FND_USER for APPS.FND_USER;
create synonym DBA_USERS for SYS.DBA_USERS;
create synonym FND_RESPONSIBILITY_VL for APPS.FND_RESPONSIBILITY_VL;
create synonym FND_APPLICATION_VL for APPS.FND_APPLICATION_VL;
create synonym FND_DATA_GROUPS for APPS.FND_DATA_GROUPS;
create synonym FND_USER_RESP_GROUPS_ALL for APPS.FND_USER_RESP_GROUPS_ALL;
create synonym PER_ALL_PEOPLE_F for APPS.PER_ALL_PEOPLE_F;
create synonym RA_CUSTOMERS for APPS.RA_CUSTOMERS;
create synonym FND_MENUS for APPS.FND_MENUS;
create synonym FND_REQUEST_GROUPS for APPS.FND_REQUEST_GROUPS;
create synonym FND_APPLICATION for APPS.FND_APPLICATION;
create synonym FND_RESPONSIBILITY for APPS.FND_RESPONSIBILITY;
create synonym FND_APPLICATION_TL for APPS.FND_APPLICATION_TL;
create or replace synonym FND_DATA_GROUP_UNITS for
APPS.FND_DATA_GROUP_UNITS;
create or replace synonym WF_USER_ROLES for APPS.WF_USER_ROLES;
create or replace synonym WF_ROLES for APPS.WF_ROLES;
create or replace synonym WF_LOCAL_ROLES for APPS.WF_LOCAL_ROLES;
create or replace synonym WF_ROLE_HIERARCHIES for APPS.WF_ROLE_HIERARCHIES;
create or replace synonym WF_ALL_ROLES_VL for APPS.WF_ALL_ROLES_VL;
create synonym FND_REQUEST_GROUP_UNITS for APPS.FND_REQUEST_GROUP_UNITS;
• Поскольку пакеты имеют права вызывающего, мы выполняем следующие действия.
create or replace synonym xxx for APPS.SP_XXX;
Где пакет xxx — это FND_USER_PKG, FND_RESPONSIBILITY_PKG, WF_LOCAL_SYNCH, FND_WEB_SEC или FND_GLOBAL.
Например,
create or replace synonym FND_USER_PKG for APPS.SP_FND_USER_PKG;