【问题标题】:How to export Oracle database as system user with os authentication?如何将 Oracle 数据库导出为具有操作系统身份验证的系统用户?
【发布时间】:2020-05-29 14:12:55
【问题描述】:

用户oracle配置了os认证,并以oracle身份登录。

我正在尝试使用以下表达式进行完整的数据库导出:

exp 'system/as sysdba' file='full_exp.dmp' log='full_exp.log' consistent='y'

但出现错误:

LRM-00108: Invalid positional parameter value 'sysdba'

也尝试过:

exp 'system' file='full_exp.dmp' log='full_exp.log' consistent='y'

要求输入系统密码,空密码不起作用,抛出错误EXP-00004, EXP-00056 and ORA-01017

请指导我通过 os 身份验证用户进行完整的数据库导出。

【问题讨论】:

    标签: oracle oracle11g export


    【解决方案1】:

    “作为 sysdba”进行完全导出是一个坏主意 - 存在重大安全风险(另外,“系统”默认情况下无论如何都没有 sysdba 权限)。您最好定义一个仅具有 exp_full_database 和/或 datapump_exp_full_database 权限的用户,使用操作系统身份验证或使用 Oracle 钱包来保存凭据,并使用该帐户运行完整导出。

    create user export_user identified by [password];
    grant create session, exp_full_database, datapump_exp_full_database to export_user;
    

    我的博客上有一个关于如何set up an Oracle Wallet 获取凭据的参考。那么您的 expdp 或 exp 命令将如下所示:

    exp export_user file='full_exp.dmp' ...
    

    expdp export_user directory=export_dir ...
    

    最后 - 认真考虑使用 Datapump (expdp) 而不是老式的“导出”实用程序 (exp)。较新版本的 Oracle 包含 export 不支持的对象类型,而且 Datapump 通常在选项方面更快、更灵活。

    【讨论】:

      【解决方案2】:

      要对非 SYSDBA 连接使用 Oracle OS 身份验证,您只需连接到映射到 Oracle 帐户的 OS 帐户并使用 / 作为用户/密码:

      sqlplus /
      expdp / ...
      

      查看 Unix 和 Windows 的详细信息 https://oracle-base.com/articles/misc/os-authentication

      【讨论】:

        猜你喜欢
        • 2012-04-12
        • 1970-01-01
        • 1970-01-01
        • 2013-12-12
        • 1970-01-01
        • 1970-01-01
        • 2012-04-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多