首页 文章

使用Oracle“创建用户”命令不会自动创建关联的模式

提问于
浏览
0

我刚刚开始使用Oracle数据导出和导入,第一次工作完全正常 . 但后来我第二天回来在同一系统上重复了完全相同的步骤,但得到了ORA-01435:用户不存在错误 .

System Specs for all machines:

-OS:Windows 2012 R2 x64

-Oracle服务器:Oracle 11G Express x64

Objective: 我正在从Oracle服务器1导出数据并导入到Oracle服务器2 .

Procedure: 从Oracle服务器1成功导出数据转储 .

但是在Oracle服务器2上导入数据转储时,我遵循以下过程:

  • 停止IIS服务

net stop WAS

导入前创建架构/用户帐户和授予权限

net stop WAS

sqlplus / as sysdba;

CREATE user PIE1 identified by PASS1;

GRANT ALL PRIVILEGES TO PIE1;

GRANT IMP_FULL_DATABASE TO PIE1;

根据甲骨文,一切顺利,但看看下面的第一个图像 . 在DBeaver中,我可以看到只创建了用户帐户PIE1,但没有模式 . Oracle issue 1. User account created, but not the Schema

Question 1: 根据Oracle的说法,"Create User"命令也应该创建一个关联的Schema . 任何人都知道为什么这不再适合我?它在前一天晚上工作过一次 .

然后我继续导入过程如下:

imp PIE1/PASS1@xe file=c:\Backups\AVUSER2_6_7.dmp log=c:\Backups\import.log fromuser=AVUSER2_6_7 touser=PIE1;

但是得到以下错误:Oracle claims the User doesn't exist even though it does

Oracle声称用户即使存在也不存在 . 我重复了整个过程,甚至创建了一个相同的导入/导出用户帐户和凭据,但仍然出现此错误 .

Question 2: 任何想法为什么Oracle "Can't find"显然在数据库中的用户帐户?

附加信息:

  • 检查我的Windows帐户是否在管理员组中

  • 检查我的Windows帐户是否在ORA_DBA组中

  • 以管理员身份打开所有CMD提示

1 回答

  • 0

    正如您所暗示的那样,Oracle中的用户和模式相同,您不能拥有没有模式的用户 . 不知道DBeaver,但是因为其他用户没有列在'schemas'下(根据你的第二张图片 - ANONYMOUS,DIP,......)似乎是无关的 .

    (纯粹是一种猜测,但也许用户你可以看到这些用户所拥有的任何对象 - 也许它只列出了它可以在_3021216中看到的用户,比如说 . 纯粹猜测,但你可以通过查看数据字典来调查通过SQL * Plus作为同一个用户连接 . According to this old forum post,有一个隐藏空模式的选项...)

    导入成功连接 PIE1 - 你'd get a different error, ORA-01017, if it wasn' t并且你不会't see the '连接到...' Banner 或之后的任何东西 .

    您的import命令有一个不应该存在的尾随分号 . "importing ... objects into"消息显示它正在尝试导入 PIE1; 用户而不是您实际创建的用户 PIE1 . 删除该分号,然后重试 .

    顺便提一下,您可以删除 @xe TNS别名并坚持本地连接,假设环境配置与您运行SQL * Plus时的配置相同 . 您还应该考虑使用datapump expdp / impdp而不是旧版exp / imp .

相关问题