客户需求,由于ftp服务器权限管理需要,测试能否通过修改oracle umask值,达到expdp导出文件权限,导出即是想要的权限。
Session 1 [oracle@adg1 ~]$ umask 0022 [oracle@adg1 ~]$ umask -S u=rwx,g=rx,o=rx 修改umask值 [oracle@adg1 ~]$ umask 027 [oracle@adg1 ~]$ umask -p umask 0027 [oracle@adg1 ~]$ touch a.txt -rw-r--r-- 1 oracle oinstall 0 08-14 22:22 test.txt -rw-r----- 1 oracle oinstall 0 08-14 22:23 a.txt --文件权限已换 -rw-r--r-- 1 oracle oinstall 0 08-14 22:24 b.txt Session 2 使用umask修改,只在当前session生效 [oracle@adg1 ~]$ umask 0022 touch c.txt [oracle@adg1 ~]$ ls -lrt c.txt -rw-r--r-- 1 oracle oinstall 0 Aug 14 22:33 c.txt 使用数据泵进行导出expdp一个表 $ expdp \'/ as sysdba\' directory=dd dumpfile=emp1.dump logfile=emp%U.log tables=scott.emp [oracle@adg1 dump]$ ls -lrt total 148 -rw-r----- 1 oracle oinstall 143360 Aug 14 22:37 emp1.dump -rw-r--r-- 1 oracle oinstall 1442 Aug 14 22:37 emp%U.log 修改umask值 https://blog.csdn.net/yangzhengquan19/article/details/83055686 umask 066 [oracle@adg1 dump]$ touch test.txt [oracle@adg1 dump]$ ls -lrt test.txt -rw------- 1 oracle oinstall 0 Aug 14 22:39 test.txt $ expdp \'/ as sysdba\' directory=dd dumpfile=emp2.dump logfile=emp%U.log tables=scott.emp -rw-r----- 1 oracle oinstall 143360 Aug 14 22:39 emp2.dump -rw-r--r-- 1 oracle oinstall 1442 Aug 14 22:39 emp%U.log 并未生效! SQL> create pfile='/11.2.0.4/app/oracle/dump/pfile.ora' from spfile; -rw------- 1 oracle oinstall 1829 Aug 14 22:41 pfile.ora !!! sqlplus 登陆创建的文件生效了,但是使用数据泵导出的文件未受到影响。 [oracle@adg1 ~]$ vi .bash_profile PATH=$PATH:$HOME/bin umask 066 export PATH [oracle@adg1 ~]$ umask 0066 [oracle@adg1 ~]$ touch a.txt [oracle@adg1 ~]$ ls -lrt -rw------- 1 oracle oinstall 0 Aug 14 22:56 a.txt $ expdp \'/ as sysdba\' directory=dd dumpfile=emp3.dump logfile=emp%U.log tables=scott.emp -rw-r----- 1 oracle oinstall 143360 Aug 14 22:56 emp3.dump 无效果 修改用户!! $ expdp \'/ as sysdba\' directory=dd dumpfile=emp4.dump logfile=emp%U.log tables=scott.emp -rw------- 1 oracle oinstall 143360 Aug 14 23:12 emp4.dump汇总: 1.修改umask值,只再当前session 生效,使用sqlplus创建pfile权限可以进行调整,但是expdp并不生效; 2.修改用户umask值,重启db生效,但是所有文件收到影响,影响太大; 3.建议使用shell脚本,对expdp导出的文件,进行脚本化封装chmod,chown修改,以达到目的