Oracle中的几个概念
TableSpace概念:
表空间(tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。为便于管理和提高运行效率,可以使用一些附加表空间来划分用户和应用程序。例如:USER表空间供一般用户使用, RBS表空间供回滚段使用。一个表空间只能属于一个数据库。
每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件(datafile)。一个数据文件只能属于一个表空间。创建新的表空间需要创建新的数据文件。
数据文件一旦加入到表空间中,就不能从这个表空间中移走,也不能与其他表空间发生联系。
如果数据库对象存储在多个表空间中,那么可以通过把它们各自的数据文件存放在不同磁盘上来对其进行物理分割。在规划和协调数据库处理I / O请求的方法中,数据分割是一种很重要的工具。
创建表空间语句:
CREATE TABLESPACE IEPSEDB_DB
logging
DATAFILE
'E:\oracleDB\IEPSEDB_DB1.dat' SIZE 32M autoextend on next 32m maxsize 2048m ,
'E:\oracleDB\IEPSEDB_DB2.dat' SIZE 32M autoextend on next 32m maxsize 2048m
extent management local;
删除表空间语句:
DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;
创建用户语句:
CREATE USER username IDENTIFIED BY password
DEFAULT TABLESPACE TEST_DATA
TEMPORARY TABLESPACE TEST_TEMP;
删除用户语句:
drop user userName cascade;
用户赋予权限语句:
GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字 ;
Oracle将用户与表空间进行关联
1.创建用户的时候定义默认表空间
SQL>create user username identified by password default tablespace tablespace_name;
2.修改用户默认表空间
SQL>alter user username default tablespace tablespace_name;
3.拥有unlimited tablespace权限的用户可在任意表空间上操作。
4.没有unlimited tablespace权限的用户要在非默认表空间上操作需要在目标表空间有一定的配额,即在目标表空间分配一定的空间给用户。
SQL>alter user username quota 100m on tablespace_name2;
注意:
1. 在SYS用户下执行此脚本
在给用户赋权限之后,创建表,出现错误如下:
no privileges on tablespace 'USERS'
解决办法是:增加用户在表空间的使用量限制
在SYSDBA用户下执行:alter user user_name quota unlimited on tablespace_name;