oracle中关于表空间跟用户的测试

oracle中关于表空间和用户的测试

 

在同一个数据库下

1. 建立两个表空间tms_datawms_date

      create tablespace tms_data

        datafile 'e:\ tms_data .dbf'

         size 32 M

        autoextend on

next 5 M maxsize 2048 M ;

 

create tablespace wms_data

        datafile 'e:\ wms_data .dbf'

         size 32 M

        autoextend on

next 5 M maxsize 2048 M ;

 

2. 建立两个用户tmswms , 密码分别为tms123wms123tms 的默认表空间设置为tms_data ,wms 的默认表空间设置为wms_date

create user tms identified by tms123 default tablespace tms_data;

create user wms identified by wms123 default tablespace wms_data;

2. tms 用户进入

创建表tms_test

创建表tms_test1 ,指定tms_test1 的表空间为wms_date

       create table tms_test( id number ( 10 ));

create table tms.tms_test( id number ( 10 )) tablespace wms_data;

wms 用户进入

创建表wms_test

创建表wms_test1 ,指定wms_test1 的表空间为tms_date

create table wms_test( id number ( 10 ));

create table wms.wms_test1( id number ( 10 )) tablespace tms_data;

tms 账号进入,查询tms_testtms_test1wms_testwms_test1 表。

select * from tms_test

select * from tms_test 1

select * from wms_test

select * from wms_test 1

结果如下:

操作账号   账号默认表空间   表创建者   表所属的表空间   是否可以访问

tms      tms_data       tms         tms_data      

tms      tms_data       tms        wms_data      

tms      tms_data       wms        wms_data       不能

tms      tms_data       wms        tms_data       不能

 

发现查询 wms_test 表时出现表不存在的错误,当加上 wms_test 表的所有者,即创建人的时候,就可以查询 wms_test 表了。

发现查询 wms_test 1 表时出现表不存在的错误,当加上 wms_test 表的所有者,即创建人的时候,就可以查询 wms_test 1 表了。

select * from wms.wms_test

select * from wms.wms_test 1

 

wms 账号测试是会发现同样的情况。

结论:一个用户创建的表,如tms 用户。无论是放在其默认的表空间(tms_data ),还是其它的表空间(wms_date) 。都能直接访问。

但如果是其它用户创建的表,就算和当前用户在同一个表空间,也不能访问,需要在表前面加上创建者名字。