新建了一个用户test,目前数据库中有表空间users,sp001
alter user test quota unlimited on users(表空间名1);
之后再次执行
alter user test quota unlimited on sp001(表空间名2);
问题:
1 新建用户test 的默认表空间是SYSTEM么。
2 我两次执行改变用户表空间的命令,最终用户名下的数据是否会被改变,即users中的用户数据(如果有)会如何处理?
------解决方案--------------------
1 默认表空间是谁看要你的新建时怎么指定的(default tablespace 参数指定)。如果没有指定且你数据库版本是10g以后的,那么默认是 users表空间,之前版本是 system表空间;
2 数据当然不会改变,你只是在修改配额(quota)而已
------解决方案--------------------
对于查询该用户的默认表空间
select DEFAULT_TABLESPACE from dba_users where USERNAME = 'TEST';
默认表空间作用是,如果该用户下的对象没有指定存储的表空间,是用默认表空间存储。
对于修改配额,只是说明,可以使用这个表空间多少空间,并不对于你当前的对象有任何影响。
------解决方案--------------------
新建用户的默认表空间为USERS。(如果没有在数据库初始化参数中做设置的话,因为默认的表空间是可以修改的)
一个用记只能有一个默认表空间,但该用户可以对应于多个表空间,执行alter user test quota unlimited on sp001只是让用户在sp001表空间上可以创建对象,并设定配额。
对原来的数据没有任何影响。