Oracle数据开发之SQL(1)------“查看以及修改用户默认表空间”

这篇文章讲得主要是关于如何通过SQL Plus 查看登陆用户的表空间,下面三个是这篇文章的三个方面:

  • dba_tablespace, user_tablespaces; (通过dba数据库管理员身份或者用户身份查看用户表空间)

  • dba_users, user_users;(通过dba或者user身份查看用户)

  • 设置用户的默认或者临时表空间。


1. dba_tablespace, user_tablespace

1.1 通过管理者(system账号)来访问用户表空间

打开SQL Plus,会挑出输入用户名的提示,输入:system, 然后输入你自己设置的口令,就可以登录了。

Oracle数据开发之SQL(1)------“查看以及修改用户默认表空间”_第1张图片
登录界面

  接下来,我们应该如何查看管理员用户下所拥有的表空间类型呢?不要急,在SQL>  下输入如下语句:

SQL> select tabllespace_name from dba_tablespaces;

其中的dba意思是指在数据字典中进行查找。应用会返回给你6个表空间:

Oracle数据开发之SQL(1)------“查看以及修改用户默认表空间”_第2张图片
显示的表空间类型

简要介绍一下这六个表空间的职能范围:

  • SYSTEM: 是系统表空间;
  • SYSAUX: 是EXAMPLE的辅助表空间;
  • UNDOTBS1:存储一些撤销信息的表空间;
  • TEMP: 用于存储临时表空间;
  • USERS: 是永久性表空间,当用户创建了对象,就会保存在这里,和SYSTEM表空间作用类似,不过SYSTEM保存的是系统信息;
  • EXAMPLE:安装oracle实例的表空间。

1.2 通过普通用户访问用户的表空间

上面我使用了system管理员用户登录查看了用户表空间,我们现在来尝试通过普通用户来查看用户表空间。(使用scott用户来登录查看)
  首先需要转换用户:

SQL> connect scott/口令

转换登录用户之后,我们不能通过dba数据库来进行用户表格控件的查找。即下面的这条语句是会报错的:

Oracle数据开发之SQL(1)------“查看以及修改用户默认表空间”_第3张图片
scott用户无法通过dba数据库进行访问查找,因为权限不够

SQL> select tablespace_name from user_tablespaces;

这条语句通过查找user的数据库则能得到想要的表格空间。这说明了不同的登录用户有着不同的使用权限!


2. dba_users, user_users;

在scott用户下访问 dba_users是会报错的。


因为权限的问题,必须切换登录用户为SYSTEM.(connect system/口令)
然后重复 dba_users,则可以得到system用户的一些信息。如图所示:

Oracle数据开发之SQL(1)------“查看以及修改用户默认表空间”_第4张图片

现在来查看一下它的默认表空间和临时表空间是什么(分别是用户创建对象后默认存放的地点和临时信息存放的空间地点,并且默认只有一个临时表格空间),语句如下:

SQL> select default_tablespace, temporary_tablespace from dba_users where username='SYSTEM';

特别要注意,SYSTEM必须要大写!

Oracle数据开发之SQL(1)------“查看以及修改用户默认表空间”_第5张图片

3. 修改默认表格空间

得到了默认表格空间是“SYSTEM”,临时表格空间是“TEMP”。接下来学会操作如何修改默认表空间(因为临时表空间只有一个,所以不做修改)。
修改格式是这样的:

ALTER USER username
DEFAULT|TEMPORARY
TABLESPACE tablespace_name

其实是可以不区分大小写的。

Oracle数据开发之SQL(1)------“查看以及修改用户默认表空间”_第6张图片

验证:

Oracle数据开发之SQL(1)------“查看以及修改用户默认表空间”_第7张图片

说明用户的默认表格空间已经从SYSTEM改为了USERS。改变默认表格空间成功。同时应该知道,普通用户是没有权限修改默认表格空间的。

你可能感兴趣的:(Oracle数据开发之SQL(1)------“查看以及修改用户默认表空间”)