Oracle 用户分权解决Schema不同的问题

问题:

表在user1_scheme下,当应用使用user2用户去查询操作表时需要使用user1.tablename的方式才能查询,应用中的sql并没有加schema只有tablename会查询不到表, 这个可以使用触发器调整登录用户的schema来解决.

--set_user2_default_schema 为触发器名称
--user2为应用登录用户
--user1表所在的Schema用户

create or replace trigger set_user2_default_schema
after logon user2.schema
begin
	execute immediate 'alter session set current_schema=user1'
end;