修改oracle 用户schema

在oracle 中schema与用户是一一对应的关系,当建立一个用户默认会为建立一个与用户名相同的schema。如今系统中有部分表在用户A下,业务需求建立用户B可以查询A用户建立的表;登陆B用户发现表不存在,因而网上找了一番,最终有一下方案解决:sql

方案一:session

    B用户查询时带上A用户的schema,例:oracle

select * from A.table

 

方案二:code

    临时修改当前用户的schema,执行下面SQL事件

alter session set current_schema= A(schema);

select * from table;

 

方案三:io

    after log on事件上作触发器执行上面的语句table

create or replace trigger set_default_schema
after logon on B.schema
begin
execute immediate 'alter session set current_schema=A(schema)';