-- 1、查看表空间文件路径
-- 切换到system用户,执行语句获取表空间文件路径。
-- 某一个表空间文件: F:\APP\ROHON1010\PRODUCT\11.2.0\DBHOME_1\DATABASE
\BACK_TABLESPACE201806061034.DBF
select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name
-- 2、新建表空间
-- 创建名为STEPHEN的表空间,初始大小1500M,超过1500M自动增加,每次100M,最大容量10000M。
-- 路径为F:\APP\ROHON1010\PRODUCT\11.2.0\DBHOME_1\DATABASE\backup_tablespacedw.DBF
create tablespace STEPHEN
logging
datafile 'F:\APP\ROHON1010\PRODUCT\11.2.0\DBHOME_1\DATABASE\backup_tablespacedw.DBF'
size 1500m
autoextend on
next 100m maxsize 10000m
extent management local;
-- 3、扩展表空间
-- 有时候表空间会不足,需要人为的扩展。这里,我们新建了一个表空间文件obak_pro_03.dbf
ALTER TABLESPACE STEPHEN ADD
DATAFILE 'F:\APP\ROHON1010\PRODUCT\11.2.0\DBHOME_1\DATABASE\backup_tablespacedw2.DBF' SIZE 1500M
AUTOEXTEND ON NEXT 100M MAXSIZE 10000M;
-- 4. 新建用户,绑定表空间
-- 新建用户dw,密码dw,所属表空间STEPHEN。
create user dw identified by dw DEFAULT TABLESPACE STEPHEN;
-- 5. 用户赋权
-- 遗漏的权限(导入dmp、其他操作等等),可自行按需添加
-- 例:grant dba to user; //把dba的权限赋给user这个用户
--连接、资源账户
grant connect, resource to user01;
-- 不限制配额
grant unlimited tablespace to dwtest;
GRANT
CREATE SESSION, CREATE ANY TABLE, CREATE ANY VIEW ,CREATE ANY INDEX, CREATE ANY sequence,CREATE ANY PROCEDURE,
ALTER ANY TABLE, ALTER ANY sequence,ALTER ANY PROCEDURE,
DROP ANY TABLE, DROP ANY sequence,DROP ANY VIEW, DROP ANY INDEX, DROP ANY PROCEDURE,
SELECT ANY TABLE, INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE
TO dw;
--没有修改表空间权限
grant unlimited tablespace to username
-- 6、异常处理
-- 在对库进行数据修改操作(insert、update、delete)如果出现下述异常:
-- ORA-01950: no privileges on tablespace 'USERS'
-- Done.
-- SQL> 1234567
-- 则表明创建的用户没有表空间的操作权限,需要进行赋权:
ALTER USER dw QUOTA UNLIMITED ON USERS;