这篇文章讲得主要是关于如何通过SQL Plus 查看登陆用户的表空间,下面三个是这篇文章的三个方面:
-
dba_tablespace, user_tablespaces; (通过dba数据库管理员身份或者用户身份查看用户表空间)
-
dba_users, user_users;(通过dba或者user身份查看用户)
-
设置用户的默认或者临时表空间。
1. dba_tablespace, user_tablespace
1.1 通过管理者(system账号)来访问用户表空间
打开SQL Plus,会挑出输入用户名的提示,输入:system, 然后输入你自己设置的口令,就可以登录了。
接下来,我们应该如何查看管理员用户下所拥有的表空间类型呢?不要急,在SQL> 下输入如下语句:
SQL> select tabllespace_name from dba_tablespaces;
其中的dba意思是指在数据字典中进行查找。应用会返回给你6个表空间:
简要介绍一下这六个表空间的职能范围:
- SYSTEM: 是系统表空间;
- SYSAUX: 是EXAMPLE的辅助表空间;
- UNDOTBS1:存储一些撤销信息的表空间;
- TEMP: 用于存储临时表空间;
- USERS: 是永久性表空间,当用户创建了对象,就会保存在这里,和SYSTEM表空间作用类似,不过SYSTEM保存的是系统信息;
- EXAMPLE:安装oracle实例的表空间。
1.2 通过普通用户访问用户的表空间
上面我使用了system管理员用户登录查看了用户表空间,我们现在来尝试通过普通用户来查看用户表空间。(使用scott用户来登录查看)
 首先需要转换用户:
SQL> connect scott/口令
转换登录用户之后,我们不能通过dba数据库来进行用户表格控件的查找。即下面的这条语句是会报错的:
SQL> select tablespace_name from user_tablespaces;
这条语句通过查找user的数据库则能得到想要的表格空间。这说明了不同的登录用户有着不同的使用权限!
2. dba_users, user_users;
在scott用户下访问 dba_users是会报错的。
因为权限的问题,必须切换登录用户为SYSTEM.(connect system/口令)
然后重复 dba_users,则可以得到system用户的一些信息。如图所示:
现在来查看一下它的默认表空间和临时表空间是什么(分别是用户创建对象后默认存放的地点和临时信息存放的空间地点,并且默认只有一个临时表格空间),语句如下:
SQL> select default_tablespace, temporary_tablespace from dba_users where username='SYSTEM';
特别要注意,SYSTEM必须要大写!
3. 修改默认表格空间
得到了默认表格空间是“SYSTEM”,临时表格空间是“TEMP”。接下来学会操作如何修改默认表空间(因为临时表空间只有一个,所以不做修改)。
修改格式是这样的:
ALTER USER username
DEFAULT|TEMPORARY
TABLESPACE tablespace_name
其实是可以不区分大小写的。
验证:
说明用户的默认表格空间已经从SYSTEM改为了USERS。改变默认表格空间成功。同时应该知道,普通用户是没有权限修改默认表格空间的。