【问题标题】:Export work on SqlDeveloper but not with Exp Oracle Command在 SqlDeveloper 上导出工作,但不使用 Exp Oracle 命令
【发布时间】:2012-08-04 22:09:16
【问题描述】:

我可以使用 SQLDeveloper 导出表,它工作正常。但是用oracle的exp命令,出现如下错误

C:\>exp CHORUS_RO/uiopfdsq@C2PROD 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.

为什么?除了给予出口特权之外我还能做什么?

【问题讨论】:

    标签: sql oracle export oracle-sqldeveloper


    【解决方案1】:

    您不能在没有权限的情况下在其他架构上使用导出实用程序 - 这是一个安全问题。

    From the docs:

    如果您没有包含在 EXP_FULL_DATABASE 角色,则不能导出包含在 另一个用户的架构。例如,您不能在 其他用户的架构,即使您为其创建了同义词。

    另请注意,从 11g 开始不支持使用 exp。最好使用expdp。

    一种可能的解决方法是通过以该用户身份调用 exp 来导出 USER_CHORUS 的架构。

    【讨论】:

    • 在 MySQL 中,即使没有特权,您也可以使用 --single-transaction 选项 cyberciti.biz/faq/… 备份数据。我不了解 Oracle 哲学,所以我可以在不属于我的表上使用 SELECT 读取数据,但我无法备份这些数据?什么鬼?
    • 如果您需要权限,请让 DBA 授予权限。如果 DBA 不这样做,可能是有原因的。
    • 如果您可以阅读,我认为没有任何理由阻止数据备份。
    • 也许它并不是真正需要备份的数据。仅仅因为你可以阅读它并不意味着它是你的。
    • 要完成我的评论,您可以使用 CREATE TABLE new_table AS (SELECT * FROM old_table) 复制数据; (techonthenet.com/sql/tables/create_table2.php) 然后使用 exp/imp 工具导出/导入备份,因为您将拥有新创建的表。只有表约束需要重新创建。
    猜你喜欢
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 2016-02-10
    • 1970-01-01
    • 2018-01-11
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多