imp导入到sys中同名表空间中
导出数据
表结构导出为sql,表数据导出为dmp。
导入数据
sqlplus中登录新建用户,@sql文件导入表结构成功。
sqlplus ins/123456
@D:\ins.sql
imp命令导入时导入到了sys中去
imp "'ins/123456 as sysdba'" file=D:\ins.dmp full=y ignore=y;
查询
新建的用户下和sys中都有相同的表,且都属于_data表空间
唯一区别是sys下的表有数据,ins下的表无数据。
排查
删除ins下的表
删除后发现sys下的表依然存在
删除表空间
drop tablespace INS_DATA including contents;
删除表空间后,发现两个用户下的表都没有了
原因分析
1.用户、表空间是平级关系,都属于system object。
2.schema属于用户,schema和user是从属关系。
3.表空间是物理文件的逻辑结构,对于用户来说,每个用户都可以把自己的表放进去,但是因为表和用户是从属关系,所以会存在同一表空间内有多个表名的情况(这些同名表属于不同用户)。
把表授权给其他用户访问
select 'grant select on usera.' || tname || ' to userb;' from tab;
如果这篇文章对你有用,可以关注本人微信公众号获取更多ヽ(^ω^)ノ ~
![微信公众号二维码](https://images.cnblogs.com/cnblogs_com/aeolian/1679458/o_wechat_gzh_qrcode.jpg)