expdp中的create directory

来源:互联网 发布:mac远程控制windows 编辑:程序博客网 时间:2024/05/21 22:26

使用expdp命令导出用户,表或者表空间的数据的步骤如下:

1. 创建directory(在sqlplus中进行创建)

    create or replace directory wsj_obj_name as '/home/wsj';  #注意这边的/home/wsj目录oracle用户必须是属主

2. 授权

    grant read or write on wsj_obj_name to wsj;# 给wsj这个数据库用户赋予对wsj_obj_name这个路径(即/home/wsj)的读写权限

3. 导出数据

    expdp wsj/wsj directory=wsj_obj_name  dumpfile=exp_wsj.dmp  logfile=exp_wsj.log  parallel=1 schemas=wsj # 导出的exp_wsj.dmp会默认的放在wsj_obj_name这个路径(即/home/wsj)

在上面的1,2步骤中,都是以数据库中的sys用户来执行的,若需要使用普通用来完成1,2步骤,方法如下:

a. 给用户赋予create any directory权限

    grant create any directory to wsj; # 给wsj这个数据库用户赋予create any directory

b. 以普通用户创建directory

    sqlplus wsj/wsj;

    create or replace directory wsj_obj_name as '/home/wsj';

c. 导出数据

    expdp wsj/wsj directory=wsj_obj_name  dumpfile=exp_wsj.dmp  logfile=exp_wsj.log  parallel=1 schemas=wsj # 导出的exp_wsj.dmp会默认的放在wsj_obj_name这个路径(即/home/wsj)

 

    删除directory:

     drop directory wsj_obj_name;

两种方法对比发现:

1. 使用普通用户创建directory不需要再对普通用户自己赋予读写权限,而sys用户需要

2. 不管是普通用户还是sys用户,wsj_obj_name这个directory任何用户都可以使用,只是需要给用户赋予grant read or write 权限(若是自己创建的directory则无需grant read or write,因为自己对自己创建的东西享有任何相关权限,这当然包括read,write)

0 0