当前位置: 首页 > 知识库问答 >
问题:

错误:ORA-65096:oracle中的公用用户名或角色名无效

尹承泽
2023-03-14

我刚刚安装了甲骨文,它缺少斯科特模式。所以我试着自己生成它。我得到了sql脚本的Scott模式,但当我试图运行查询:

create user Scott identified by tiger; 

它显示以下错误:

ORA-65096:oracle中的公用用户名或角色名无效。

基本上,它不允许我创建一个用户Scott。

为什么会这样?我如何解决我的问题?

共有3个答案

齐涛
2023-03-14

在Oracle 12c及以上版本中,我们有两种类型的数据库:

  1. 集装箱数据库(CDB)和

如果要创建用户,有两种可能:

>

创建由密码标识的用户c##用户名;

您可以创建“可插拔用户”也称为“本地用户”。
本地用户

alter session set container=pluggabledatabase的名称

在那里,您可以创建用户,如通常所示:

创建由密码标识的用户用户名

不要忘记指定要使用的表空间,它在DBs的导入/导出过程中非常有用。有关它的更多信息,请参阅此https://docs.oracle.com/database/121/SQLRF/statements_8003.htm#SQLRF01503

呼延衡
2023-03-14

我刚刚安装了oracle11g

ORA-65096: oracle中无效的普通用户或角色名

否,您已安装Oracle 12c。该错误只能出现在12c上,而不能出现在11g上。

始终检查您的数据库版本(小数点后4位):

SELECT banner FROM v$version WHERE ROWNUM = 1;

Oracle 12c多租户容器数据库具有:

  • 根容器(CDB)
  • 和/或零个、一个或多个可插拔数据库(PDB)

您必须将数据库创建为容器数据库。同时,您正在尝试在容器中创建用户,即。但是,您应该在PLUGGABLE数据库中创建用户。

您不应该在容器中创建与应用程序相关的对象,容器保存可插拔数据库的元数据。您应该使用可插拔数据库进行常规数据库操作。否则,不要将其创建为容器,也不要使用多租户。但是,从12cR2开始,您无论如何都不能创建非容器数据库。

最有可能的是,示例模式可能已经安装,您只需要在可插拔数据库中解锁它们。

例如,如果您将可插拔数据库创建为pdborcl

sqlplus SYS/password@PDBORCL AS SYSDBA

SQL> ALTER USER scott ACCOUNT UNLOCK IDENTIFIED BY tiger;

sqlplus scott/tiger@pdborcl

SQL> show user;
USER is "SCOTT"

要显示PDB并从根容器连接到可插拔数据库,请执行以下操作:

SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        READ WRITE NO

SQL> alter session set container = ORCLPDB;

Session altered.

SQL> show con_name;

CON_NAME
------------------------------
ORCLPDB

我建议您阅读Oracle 12c安装后必备步骤

注意:建议使用\u ORACLE\u SCRIPT隐藏参数设置为true的答案在生产系统中是危险的,也可能使您的支持合同无效。请注意,未咨询Oracle支持人员,请勿使用隐藏参数。

戚祺
2023-03-14

99.9%的时间错误ORA-65096:invalid common user或role name表示您在应该登录PDB时登录了CDB。例如,如果使用默认的19c安装设置,则应登录到ORCLPDB(PDB)而不是ORCL(CDB)。

危险-如果您坚持以错误的方式创建用户,请遵循以下步骤。

像这样设置未记录的参数(如前导下划线所示)只能在Oracle支持人员的指导下进行。在没有此类指导的情况下更改此类参数可能会使您的支持合同无效。因此,请自行承担风险。

具体地说,如果您将“ORACLE脚本”=true,将对ORACLE\u维护列进行一些数据字典更改,并将其设置为“Y”。这些用户和对象将被错误地从某些DBA脚本中排除。并且它们可能错误地包含在某些系统脚本中。

如果您同意上述风险,并且不想以正确的方式创建普通用户,请在创建用户之前运行以下命令:

alter session set "_ORACLE_SCRIPT"=true;  

我在这里找到了答案

 类似资料:
  • 为什么这显示错误... 第1行错误: ORA-65096:公用用户名或角色名无效

  • 问题内容: 我与Oracle数据库服务器的jdbc连接有一个奇怪的问题。 我们已经在tomcat服务器上运行了应用程序。这些应用程序使用一个oracle数据库。所有应用程序都使用相同的凭据。 应用程序整天运行良好。晚上没有活动。早晨,当应用程序尝试将自身重新连接到数据库时,我们会收到一些(2或3)ORA-01017(无效的用户名/密码)错误。 然后重新连接工作,应用程序将正常运行。 这可以工作几天

  • 我无法在我的索引页面上显示经过身份验证的用户的角色和用户名。我用的是百里叶。所有角色用户都保存在内存中。我正在使用Springmvc编写和Web应用程序 我在我的pom中添加了依赖关系.xml 这是我的索引页: 我也希望: 这是我的安全配置类: 我也读了很多关于stackoverlew的问题,但我没有找到答案。我还阅读了官方蒂梅拉夫网站上的指南。 为什么我无法显示:“角色:用户”、“用户名:用户”

  • 我用 但从oracleSqlDeveloper,当从9i客户端连接到11g数据库时,我无法登录到我的用户并发现ORA-01017无效的用户名/密码,但他说要更改安全性!oracle是否为access数据库设置了此选项?在不更改安全参数的情况下,如何登录oracle数据库? 错误:

  • 我无法连接到返回此错误的数据库。在应用程序中,我必须使用两个数据库,一个mysql(正在工作)和另一个oracle。 系统信息: win7 x64 拉威尔5.6 PHP7.1。9 保监处2.1。7 即时客户端12.1 甲骨文档案。php 存档数据库。php 我需要其他地方的配置吗?

  • 问题内容: 我有我正在尝试编译并收到错误的函数。我真的不知道此错误,并尝试搜索此问题,但未找到任何解决方案。我不知道这与任何授予特权有关,但是我的架构表没有特权问题。 问题答案: 您可能有另一个具有相同名称()的对象。 您可以通过查询找到它: 然后将其删除(由上面的查询替换为对象的类型):