需求描述:现在两个用户ruiji和scott,用的同一个数据库orcl,但是不同的表空间,不同的表。如果ruiji用户想修改(update)scott用户的t1表,方法有如下一些:
1、在ruiji下建dblink
create database link link_ruiji_scott
connect to scott identified by "tiger"
using'ORCL';----ORCL是实例名
select * from emp@link_ruiji_scott;--查询scott用户下的emp表,后面都需要加上dblink的名字
update t1@link_ruiji_scott
set id2='10'
where id='1'—更新的时候同样要加上dblink的名字
tip:因为dblink不走索引,所以效率不高,因此针对同一个库的,不建议用dblink
2、直接在scott下赋修改t1表的权限给ruiji
grant update on scott.t1 to ruiji;
然后在ruiji下直接修改就可以了
update scott.t1
set id2='14'
where id='1'
如果scott用户没有grant的权限,则需要sys用户来操作
Sys用户授权语句也是grant update on scott.t1 to ruiji;