应为新业务创建独立用户表空间,如users_data和temp_users,使用本地管理与自动段空间管理,并分配给app_user用户;需以sys/system as sysdba登录,确保数据文件路径存在且有写权限。

在Oracle数据库中为新业务分配独立存储区域,避免与SYSTEM、SYSAUX等系统表空间混用,防止用户对象挤占关键系统空间导致数据库异常。
以DBA身份连接到数据库实例
打开SQL*Plus或SQL Developer,执行:sqlplus / as sysdba。必须使用SYS或SYSTEM用户并携带AS SYSDBA权限,普通用户即使被授予CREATE TABLESPACE也无法创建本地管理的永久表空间。
若提示“ORA-01017: invalid username/password”,说明未以操作系统认证方式登录,需确认当前OS用户属于dba组;Windows下则需用sqlplus sys/密码@实例名 as sysdba显式指定凭据。
创建永久性用户表空间
执行以下语句创建一个启用自动扩展、本地管理、段空间自动管理的标准用户表空间:
CREATE TABLESPACE users_data<br> DATAFILE '/u01/oradata/ORCL/users01.dbf'<br> SIZE 200M<br> AUTOEXTEND ON NEXT 50M MAXSIZE 4G<br> EXTENT MANAGEMENT LOCAL<br> SEGMENT SPACE MANAGEMENT AUTO<br> LOGGING;
其中EXTENT MANAGEMENT LOCAL是强制要求——Oracle 10g之后不再支持字典管理表空间;SEGMENT SPACE MANAGEMENT AUTO启用位图管理,避免手动设置PCTUSED等参数出错;【DATAFILE路径必须真实存在且Oracle进程有写入权限,否则报ORA-01119】。
如需支持超大单文件(例如数据仓库场景),改用大文件表空间语法:CREATE BIGFILE TABLESPACE bigdata_ts DATAFILE '/u01/oradata/ORCL/big01.dbf' SIZE 10G AUTOEXTEND ON;。注意:大文件表空间只能含一个数据文件,不可再ADD DATAFILE。
创建临时表空间
方法一:标准临时表空间(推荐)
CREATE TEMPORARY TABLESPACE temp_users<br> TEMPFILE '/u01/oradata/ORCL/temp_users01.dbf'<br> SIZE 100M<br> AUTOEXTEND ON NEXT 20M MAXSIZE 2G<br> EXTENT MANAGEMENT LOCAL;
方法二:如果已有默认临时表空间,可跳过此步;但新建用户若未显式指定TEMPORARY TABLESPACE,将继承数据库默认值(通常是TEMP),建议为业务用户单独配置,避免排序操作争抢同一临时段。
注意:临时文件不参与归档,重启后内容清空,因此无需LOGGING子句。
将表空间分配给用户
第一步:创建用户并绑定表空间
CREATE USER app_user IDENTIFIED BY "StrongPass#2026"<br> DEFAULT TABLESPACE users_data<br> TEMPORARY TABLESPACE temp_users;
第二步:授予必要权限
GRANT CREATE SESSION, CREATE TABLE, CREATE INDEX TO app_user;<br>GRANT UNLIMITED TABLESPACE TO app_user;
第三步:验证用户是否可用
新开连接执行:conn app_user/"StrongPass#2026",成功即表示表空间已就绪。此时该用户创建的任何表、索引,默认都会落在users_data中,无需每次指定TABLESPACE子句。











