好久没有用Oracle了,快要忘的差不多了,今天没事整理一下,留个记录,便于以后查看。
ORACLE数据库被划分成称作为表空间的逻辑区域——形成ORACLE数据库的逻辑结构。一个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件。表空间是ORACLE数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引、聚簇、回退段和临时段等。
例如:便于理解,把oracle数据库看作一个实在房间,表空间可以看作这个房间的空间,是可以自由分配,在这空间里面可以堆放多个箱子(箱子可以看作数据库文件),箱子里面再装物件(物件看作表)。用户指定表空间也就是你希望把属于这个用户的表放在那个房间(表空间)里面。
表空间是一个虚拟的概念可以无限大,但是需要由数据文件作为载体。
1、建立表空间
--建立临时表空间
CREATE TEMPORARY TABLESPACE temp_name
TEMPFILE 'D:\app\super\oradata\oracle\temp_name.DBF'
SIZE 50M
AUTOEXTEND ON
NEXT 50M MAXSIZE 20480M
EXTENT MANAGEMENT LOCAL;
--建立表空间
CREATE TEMPORARY TABLESPACE test_name
TEMPFILE 'D:\app\super\oradata\oracle\test_name.DBF'
SIZE 50M
AUTOEXTEND ON
NEXT 50M MAXSIZE 20480M
EXTENT MANAGEMENT LOCAL;
2、创建用户并关联表空间
CREATE USER userName IDENTIFIED BY password
DEFAULT TABLESPACE test_name --表空间
TEMPORARY TABLESPACE temp_name; -- 临时表空间,关联任意一个都行
-- 创建表的时候没有关联表空间
CREATE USER userName IDENTIFIED BY PASSWORD;
--修改用户表空间
ALTER USER username DEFAULT TABLESPACE test_name;
3、用户授权\撤销授权
Oracle提供三种标准角色(role):connect/resource/dba。
a、connect role(连接角色)
临时用户,特指不需要建表的用户,通常只赋予他们connect role.
connect是使用oracle简单权限,这种权限只对其他用户的表有访问权限,包括select/insert/update和delete等。
拥有connect role 的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym)、回话(session)和其他 数据的链(link)。
b、resource role(资源角色)
更可靠和正式的数据库用户可以授予resource role。
resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。
c、dba role(数据库管理员角色)
dba role拥有所有的系统权限。
--给用户授权
GRANT CONNECT,RESOURCE,DBA TO userName;
--撤销用户权限
REVOKE CONNECT,RESOURCE FROM userName;
4、删除表空间
--删除表空间
DROP TABLESPACE test_name INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS