实操验证下oracle多用户共用一个表空间,表,数据是互不影响的。


我用到是最新版Oracle19c 测试过程如下

 

1、创建临时表空间
create temporary tablespace ekp15temp tempfile 'D:\oracledbms\ekp15temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local;

2、创建表空间
create tablespace ekp15tablespace logging datafile 'D:\oracledbms\ekp15.dbf' size 50m autoextend on next 50m maxsize 20480m

3、创建用户,并给默认表空间
create user ekp15 identified by password default tablespace ekp15tablespace temporary tablespace ekp15temp;

4、给用户授权
grant connect,resource,dba to ekp15;

5、用ekp15账户登录,并创建表,新增数据,查询数据

create table t1
(
id varchar2(50) primary key ,
name char(200) not null
);

insert into t1 values ('11','张三');

select * from t1;

能查询到一条数据,如下图

 

 

 

 6、创建ekp152用户,使用同一个表空间

create user ekp152 identified by password default tablespace ekp15tablespace temporary tablespace ekp15temp;
7、授权152
grant connect,resource,dba to ekp152;

8、使用ekp152登录,查询表t1 发现表t1并不存在证明ekp152用户,看不到ekp15用户的表)

 

 9、查询表空间下面所有的表,发现t1存在,只是在ekp15这个用户下面,(再次说明表是在用户下面,即使同一个表空间也互相看不到)

select * from all_tables where TABLESPACE_NAME = 'EKP15TABLESPACE'

 

 10、用ekp152用户,创建t1表,并新增数据,再分别用ekp15和ekp152查询t1表,

create table t1
(
id varchar2(50) primary key ,
name char(200) not null
);

 

insert into t1 values ('11','李四');

 

执行下面3条sql,也可以验证

select * from all_tables where TABLESPACE_NAME = 'EKP15TABLESPACE';
select * from ekp152.t1;
select * from ekp15.t1;

 

 

 

 

 

 

 

 

11、接来下级联删除用户ekp152 试试看,有没有影响到用户ekp15的数据

DROP USER ekp152 CASCADE; 

再次用ekp15 查询下t1表,发现还在

 

再次查询表空间所有的表,发现只有ekp15名下的一张t1表了

 

 

 

 

 

 

 

 

 

 

12、总结Oracle  不同用户,即使共用一个表空间,数据也是互不影响,相互独立

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM