ORACLE数据库删除用户,重新创建用户并导入.dmp文件

时间:2024-10-19 10:02:50

开发过程中,有时需要将生产数据整体导出并重新导入开发环境,下面我把我删除数据库中用户并重新导入.dmp数据文件的全过程做了整理,为需要的同学提供参考,有不对的地方还请指教。

一。用xshell登陆oracle 用户

二。登陆sqlplus:

       sqlplus /nolog;

       connect / as sysdba;

三。用约束方式重新启动数据库:

       shutdown abort;

       startup restrict;

      注:如果不用约束方式启动数据库,则会有连接访问此数据库,下面步骤执行用户删除时会报错

四。删除用户

      drop user username cascade;

     注:若没执行上面第三步骤,仍会有用户连接,删除用户时报错:ORA-0194:cannot drop a user that is currently connected

             上面错误是试过kill用户进程,再删除用户,仍然报错,所以用约束模式启动数据库比较保险

五。创建用户

      create user username identified by password;//创建用户并设置密码

六。给用户赋予权限

      grant create session to sun;            //授予sun用户创建session的权限,即登陆权限
    grant unlimited tablespace to sun;  //授予sun用户使用表空间的权限
    grant create table to sun;              //授予创建表的权限
    grant drop any table to sun;                //授予删除表的权限
    grant insert any table to sun;               //插入表的权限
    grant update any table to sun;             //修改表的权限
    grant dba to username;         //授予用户dba权限

注:若不授予用户dba权限,则数据导入时会报错:IMP-00013:only a DBA can import a file exported by another DBA

        因为只有 DBA 才能导入由其他 DBA 导出的文件

七。用户解锁

       alter user username account unlock;

八。服务重起

      shutdown abort;

      startup;

九。exit退出sqlplus

 

十。开启监听端口

       lsnrctl start;

十一。导入数据

      imp username/password@ORCL file=/home/oracle/***.dmp log=/home/oracle/***.log full=y;

备注

      密码过期修改:alter user username identified by password;