Oracle数据库用户角色、表空间创建、删除命令
// 创建数据表空间 create tablespace BCC datafile 'D:\oracle\oradata\BCC\BCC.dbf' size 100m autoextend on next 32m maxsize 2048m( MAXSIZE UNLIMITED ) extent management local; //datafile 参数必须有 // 创建临时表空间 create temporary tablespace BCC_temp tempfile 'D:\oracle\oradata\BCC\BCC_temp.dbf' size 32m autoextend on next 32m maxsize 2048m( MAXSIZE UNLIMITED ) extent management local; //tempfile 参数必须有 // 创建用户并指定表空间 create user BCC identified by BCC default tablespace BCC temporary tablespace BCC_temp ; //identified by 参数必须有 // 授予BCC用户DBA角色的所有权限 grant DBA TO BBC ; // 给用户授予权限 grant connect,resource to BBC ; (db2 :指定所有权限) // 删除用户以及用户所有的对象 drop user BCC cascade; //cascade 参数是级联删除该用户所有对象,经常遇到如用户有对象而未加此参数则用户删不了的问题,所以习惯性的加此参数 // 删除表空间 前提:删除表空间之前要确认该表空间没有被其他用户使用之后再做删除 drop tablespace BCC including contents and datafiles cascade onstraints; //including contents 删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间删不掉,所以习惯性的加此参数 //including datafiles 删除表空间中的数据文件 //cascade constraints 同时删除tablespace中表的外键参照 // 备份操作 exp bcc/bcc file=d:\bcc.dmp // 恢复操作 imp bcc/bcc file=d:\bcc.dmp ignore=y full=y 如果删除表空间之前删除了表空间文件,解决办法: 如果在清除表空间之前,先删除了表空间对应的数据文件,会造成数据库无法正常启动和关闭。 可使用如下方法恢复(此方法已经在oracle9i中验证通过): 下面的过程中,filename是已经被删除的数据文件,如果有多个,则需要多次执行;tablespace_name是相应的表空间的名称。 $ sqlplus /nolog SQL> conn / as sysdba; 如果数据库已经启动,则需要先执行下面这行: SQL> shutdown abort SQL> startup mount SQL> alter database datafile 'filename' offline drop; SQL> alter database open; SQL> drop tablespace tablespace_name including contents; |