Oracle数据库管理:创建与删除表空间、用户授权

需积分: 9 2 下载量 4 浏览量 更新于2024-09-10 收藏 29KB DOCX 举报
"这篇文档主要介绍了Oracle数据库的一些常用脚本,特别是关于数据库的备份操作和用户管理。" 在Oracle数据库管理中,表空间是存储数据库对象(如表、索引等)的地方。创建表空间的命令如下: ```sql CREATE TABLESPACE eads LOGGING DATAFILE '/opt/oracle/oradata/eads/eads.dbf' SIZE 100M AUTOEXTEND ON NEXT 32M MAXSIZE 2048M EXTENT MANAGEMENT LOCAL; ``` 这个命令创建了一个名为`eads`的表空间,初始数据文件大小为100M,自动扩展每次增加32M,最大可扩展到2048M。`EXTENT MANAGEMENT LOCAL`表示本地管理的段空间。 临时表空间用于存储临时数据,例如排序或连接操作的中间结果。创建临时表空间的命令如下: ```sql CREATE TEMPORARY TABLESPACE zfmi_temp TEMPFILE 'D:\oracle\oradata\zfmi\zfmi_temp.dbf' SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 2048M EXTENT MANAGEMENT LOCAL; ``` 这个命令创建了名为`zfmi_temp`的临时表空间,其设置与普通表空间类似。 删除表空间时,必须确保没有任何对象在其中,可以使用如下命令: ```sql DROP TABLESPACE zfmi INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS; ``` 这将删除表空间及其所有内容,包括数据文件,并且如果存在依赖于该表空间的对象,会连同约束一起删除。 如果在删除表空间前错误地删除了数据文件,导致数据库无法正常启动,可以尝试以下步骤恢复: 1. 连接到数据库作为SYSDBA用户:`sqlplus /nolog && conn /as sysdba` 2. 如果数据库已启动,需要强制关闭:`SHUTDOWN ABORT` 3. 以挂起模式启动数据库:`STARTUP MOUNT` 4. 将丢失的数据文件标记为离线并删除:`ALTER DATABASE DATAFILE 'filename' OFFLINE DROP;` 5. 打开数据库:`ALTER DATABASE OPEN` 6. 最后,删除表空间:`DROP TABLESPACE tablespace_name INCLUDING CONTENTS;` 创建用户和权限管理是数据库管理员的日常工作。例如,删除用户`reads`的命令是: ```sql DROP USER reads CASCADE; ``` 创建用户并指定默认表空间为`eads`的命令: ```sql CREATE USER reads IDENTIFIED BY eads DEFAULT TABLESPACE eads; ``` 接着,授予用户`reads`数据库管理员(DBA)权限和连接及资源权限: ```sql GRANT DBA TO reads; GRANT CONNECT, RESOURCE TO reads; ``` 这些脚本和命令对于日常的Oracle数据库维护和备份操作至关重要,确保了数据的安全性和可管理性。在实际操作中,应根据具体的数据库环境和安全策略来调整和执行这些命令。