oracle数据库重建用户

原标题:在不更换表空间的情况下,重建oracle数据库(用户),并重新导入数据

1. 删除前的准备工作:

(1) 连接数据源,导出备份数据


exp tianzhi_smart/tianzhi_smart@1localhost:1521/orcl file='E:\tianzhi_smart.dmp';

(2) 登录即将被删除的用户,查看当前连接用户缺省表空间:


SQL>select username,default_tablespace from user_users;

2. 删除工作:

(1) 以sysdba管理员登录,


sqlplus /nolog
conn /as sysdba;

(2) 删除数据库(用户),并没有删除对应的表空间


drop user tianzhi_smart cascade;

3. 创建用户:

(1) 创建用户,并指定表空间,还是原来的表空间,前面已经查询到


create user tianzhi_smart identified by tianzhi_smart default tablespace casic_smart quota 500m on users;

(2) 授予权限


grant all privileges to tianzhi_smart;

4. 导入数据


imp tianzhi_smart/tianzhi_smart@localhost:1521/orcl file='C:\tianzhi_smart.dmp' full=y;

说明:
在硬盘盘符下看到的文件是数据库存放数据的数据文件,执行完drop user xxx cascade;后,会把用户及用户所属的表删除掉,但表空间还是存在的,只是里面的数据已被删除掉了。

最后说一点,删除了用户和数据后是不会自动释放表空间的,表空间容量是建立数据库的时候初始化的,比方说XXX tablespace 容量为1G,你删除数据是不影响这个容量的,它在硬盘上仍然占用1G空间。

说明内容文字来源于CSDN论坛技术回答:http://bbs.csdn.net/topics/370131138

你可能感兴趣的:(oracle数据库重建用户)