ORA-00980:同义词翻译不再有效00980. 00000 - “同义词翻译不再有效”

问题描述 投票:0回答:1

我们有一个适用于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上的执行授予$ {new role};

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;
oracle-ebs
1个回答
0
投票

比为您需要查询的每个用户和EBS表创建额外的同义词更有效,将使用现有的APPS同义词。这可以通过将默认模式切换到APPS来完成,例如,使用这样的登录触发器(用你的用户名替换用户名apps_query)

create or replace trigger apps.apps_query_logon_trg
after logon on apps_query.schema
begin
  execute immediate 'alter session set current_schema=apps';
end;
/
© www.soinside.com 2019 - 2024. All rights reserved.