如果是使用视图实现,可以这样做 --以用户A登录 create table t_test( c1 varchar2(10) not null, c2 date default sysdate, c3 varchar2(40) default user ) / create index idx_test on t_test(c3) / create view v_test as select c1 from t_test where c3=user / create public synonym test for v_test / grant select, insert on test to public / insert into test values('1111') / commit / --以用户B登录 insert into test values('2222') / commit / select * from test / --查询出来的只有2222。 --再以用户A登录 select * from test / --查询出来的只有1111。 select * from t_test / --查询出来的是所有记录。
也不是很麻烦,google一下吧。
--以用户A登录
create table t_test(
c1 varchar2(10) not null,
c2 date default sysdate,
c3 varchar2(40) default user
)
/
create index idx_test on t_test(c3)
/
create view v_test as select c1 from t_test where c3=user
/
create public synonym test for v_test
/
grant select, insert on test to public
/
insert into test values('1111')
/
commit
/
--以用户B登录
insert into test values('2222')
/
commit
/
select * from test
/
--查询出来的只有2222。
--再以用户A登录
select * from test
/
--查询出来的只有1111。
select * from t_test
/
--查询出来的是所有记录。