ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 用户默认表空间随DB默认表空间的变动

用户默认表空间随DB默认表空间的变动

原创 Linux操作系统 作者:keeptrying 时间:2012-04-18 09:45:32 0 删除 编辑

Oracle 10g 中,数据库级别的默认表空间是USERS,创建用户时,如果没有指定用户的默认表空间,则会把数据库级别的默认表空间当做该用户的默认表空间。考虑一下几种情况:

1、  创建用户时没有指定用户默认表空间,那么将DB默认表空间作为用户默认表空间,此后,若修改了DB默认表空间,用户的表空间也会随之改变。

2、  创建用户时指定了默认表空间,该默认表空间为DB默认表空间。那么在修改DB默认表空间后,该用户的默认表空间也会随之改变。

3、  创建用户时指定了默认表空间,该默认表空间为非DB默认表空间的其他表空间。那么修改DB默认表空间不会影响该用户。

4、  DB默认表空间不能删除,除非将DB默认表空间指向其他表空间后才可删除。

5、  如果用户的默认表空间指向其他表空间(如3),当这个表空间被drop后,用户的默认表空间自动指向DB默认表空间。

 

==============================================================================

1、  查看当前DB默认表空间

SYS@ tsid > select property_value from database_properties where property_name='DEFAULT_PERMANENT_TABLESPACE';

 

PROPERTY_VALUE

--------------------------------------------------------------------------------

TEST

 

2、  修改DB默认表空间

SYS@ tsid > alter database default tablespace users;

 

Database altered.

 

SYS@ tsid > select property_value from database_properties where property_name='DEFAULT_PERMANENT_TABLESPACE';

PROPERTY_VALUE

--------------------------------------------------------------------------------

USERS

 

3、  创建用户test1,不指定默认表空间

SYS@ tsid > create user test1 identified by test1;

 

User created.

 

SYS@ tsid > select default_tablespace from dba_users where username='TEST1';

 

DEFAULT_TABLESPACE

------------------------------

USERS

   --TEST1默认表空间为USERS

4创建用户test2,指定默认表空间为DB默认表空间USERS

   SYS@ tsid > create user test2 identified by test2 default tablespace users;

 

User created.

 

SYS@ tsid > select default_tablespace from dba_users where username='TEST2';

 

DEFAULT_TABLESPACE

------------------------------

USERS

 

4、  创建用户test3,指定默认表空间为非DB默认表空间TEST

SYS@ tsid > create user test3 identified by test3 default tablespace test;

 

User created.

 

SYS@ tsid > select default_tablespace from dba_users where username='TEST3';

 

DEFAULT_TABLESPACE

------------------------------

TEST

 

=========================================================================

5、  修改DB默认表空间

SYS@ tsid > alter database default tablespace test;

 

Database altered.

6、  查看用户表空间变化情况

SYS@ tsid > select default_tablespace from dba_users where username='TEST1';

 

DEFAULT_TABLESPACE

------------------------------

TEST

       --test1默认表空间随DB默认表空间变为TEST

  

       SYS@ tsid > select default_tablespace from dba_users where username='TEST2';

 

DEFAULT_TABLESPACE

------------------------------

TEST

--test2默认表空间也随DB默认表空间变为TEST

 

SYS@ tsid > select default_tablespace from dba_users where username='TEST3';

 

DEFAULT_TABLESPACE

------------------------------

TEST

 

7、  试图删除默认表空间TEST

SYS@ tsid > drop tablespace test including contents and datafiles;

drop tablespace test including contents and datafiles

*

ERROR at line 1:

ORA-12919: Can not drop the default permanent tablespace

8、把DB默认表空间修改为USERS,再删除TEST表空间。

SYS@ tsid > alter database default tablespace users;

 

Database altered.

 

SYS@ tsid > drop tablespace test including contents and datafiles;

 

Tablespace dropped.

 

  查看test3的默认表空间

  SYS@ tsid > select default_tablespace from dba_users where username='TEST3';

 

DEFAULT_TABLESPACE

------------------------------

USERS

--test3默认表空间自动变为USERS

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25744374/viewspace-721489/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-04-25

  • 博文量
    130
  • 访问量
    911899