2012-08-03 77 views
0

我可以使用SQLDeveloper导出表并且工作正常。但是用oracle的exp命令,我有以下错误导出SqlDeveloper的工作,但不使用Exp Oracle命令

C:\>exp CHORUS_RO/[email protected] TABLES=(USER_CHORUS.CHO_FAQ_ITEM) file='D:\exports' 

Export: Release 11.2.0.2.0 - Production on Ven. Ao¹t 3 18:30:47 2012 

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 


Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit 
Production 
With the Partitioning, Real Application Clusters, OLAP, Data Mining 
and Real Application Testing options 
Export done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set 
server uses AL32UTF8 character set (possible charset conversion) 

About to export specified tables via Conventional Path ... 
EXP-00009: no privilege to export USER_CHORUS's table CHO_FAQ_ITEM 
Export terminated successfully with warnings. 

为什么?除了给予出口特权之外,我可以做什么,因为我没有能力做到这一点?

回答

3

您无法在没有权限的情况下在其他模式上使用导出实用程序 - 这是一个安全问题。

From the docs

如果你没有包含在 EXP_FULL_DATABASE角色的系统权限,那么你就不能导出包含在 另一个用户的模式对象。例如,即使您为其创建了一个同义词,也不能在另一个用户的模式中导出表。

还要注意,使用exp是从11g开始不支持的。最好使用expdp。

可能的解决方法是通过调用exp作为该用户来导出USER_CHORUS的模式。

+1

在MySQL中,即使没有权限,您也可以使用--single-transaction选项来备份数据:http://www.cyberciti.biz/faq/linux-unix-mysqldump-got-error1044-access-denied/。我不理解Oracle的哲学,所以我可以在不是我的表上使用SELECT读取数据,但我无法备份这些数据? WTF? – baptx 2013-10-13 13:54:30

+0

如果您需要权限,请让DBA授予他们。如果DBA不会,那么可能有一个原因。 – DCookie 2013-10-14 21:27:16

+1

如果您可以阅读,我看不到任何阻止数据备份的理由。 – baptx 2013-10-27 17:26:30