Fork me on GitHub

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表空间
image
image
唯一区别是sys下的表有数据,ins下的表无数据。

排查

删除ins下的表

删除后发现sys下的表依然存在

删除表空间

drop tablespace INS_DATA including contents;

删除表空间后,发现两个用户下的表都没有了
image

原因分析

1.用户、表空间是平级关系,都属于system object。
2.schema属于用户,schema和user是从属关系。
3.表空间是物理文件的逻辑结构,对于用户来说,每个用户都可以把自己的表放进去,但是因为表和用户是从属关系,所以会存在同一表空间内有多个表名的情况(这些同名表属于不同用户)。

把表授权给其他用户访问

select 'grant select on usera.' || tname || ' to userb;' from tab;
posted @ 2022-12-01 17:32  秋夜雨巷  阅读(130)  评论(0编辑  收藏  举报