我试图通过Windows Task Sheduler执行批处理文件来导出特定oracle用户的所有对象:
exp.exe user/pass@dbname owner=user log=mylog.txt
Oracle 11.2.0.4 x64和数据库位于同一台Windows7计算机上
任务开始正常。这意味着没有错误的用户或密码问题。但是当任务按计划启动时,它会在日志中说明:
ORA-12546:TNS:许可被拒绝
当手动启动任务时,在与调度用户相同的用户下(此用户是Administrators
组和ora_dba
组的成员,顺便说一句),它可以正常工作并完成导出。任务安排在任务属性中使用Execute with highest privileges
复选框,因此我不明白为什么“按计划”和“手动”任务启动之间存在差异。
我在这个网站上的ORA-12546: TNS:permission denied
上已经阅读了很多内容,但所有主题都与Linux有关。我尝试在安装了Oracle的c:\ app \ oracle上设置权限。实际上,默认情况下Administrators
已拥有该目录的所有权限
我注意到,即使在按计划启动的任务中,表的导出也能正常工作:
exp.exe user/pass@dbname tables=mytable1,mytable2 log=mylog.txt
无论如何,oracle用户user
具有导出整个数据库的oracle权限。
问题:
只有表被导出正常,但是使用owner=
导出密钥我得到TNS:permission denied
,并且只有在按计划启动Windows计划任务时,手动启动任务才能完成所有操作。