我们通过在oracle中建立了一个只有读权限的用户;同时通过建立同义词来避免在访问对象时需要加上原用户的名称。具体过程如下(新建一用户TEST来只读pcms下的表和视图):
1、新建用户TEST
CREATE USER "TEST" PROFILE "DEFAULT" IDENTIFIED BY "test" DEFAULT TABLESPACE "NCTB02" ACCOUNT UNLOCK;
GRANT "CONNECT" TO "TEST";
2、以pcms登陆
select 'CREATE SYNONYM test.'||object_name||' FOR yxnc.'||object_name||';' from dba_objects where owner='PCMS' and object_type in('TABLE','VIEW');
3、用TEST用户登陆执行2中生成的脚本
4、以PCMS登陆
select 'grant select on '||object_name||' to test;' from dba_objects where owner='PCMS' and object_type IN ('TABLE','VIEW');
5、以PCMS执行4中的生成的脚本