当前位置: 首页 > news >正文

19C数据库提示ORA-65096: 公用用户名或角色名无效(详细操作版)

一、问题

今天在创建Oracle用户时,报错:【ORA-65096: 公用用户名或角色名无效】

什么原因呢?

查看数据库版本信息:

select version from v$instance;


我的oracle版本是19c,应该是oracle_12版本及以上版本的特性

在CDB容器中用户名必须加c##或者C##前缀才能创建成功,但会改变用户名的预期格式

Oracle官方文档介绍: https://docs.oracle.com/database/121/DBSEG/users.htm#DBSEG99780

这里面又牵扯到了容器CDB(Container Database)与PDB(Pluggable Database)的概念,具体大家可以自己深究

二、解决

方案一、直接创建以c##或者C##开头的用户
当前容器为CDB,CDB容器下创建用户必须以c##或者C##开头,那就改下用户名呗,仅仅是个用户名而已,也不影响什么。但是追求完美的娃子可以用以下方法!!!
create user c##tiger identified by tiger
方案二、将当前容器改为PDB,然后再创建用户
将当前容器改为PDB,PDB容器创建用户无需以c##或者C##开头(注意:以下操作需要通过cmd黑窗口进入后,登录sysdba权限进行操作,在Navicate等sql窗口下执行还是会提示ORA-65096问题)

使用sysdba用户进行操作,其他用户权限级别不足


C:\Users\Administrator> sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on 星期五 9月 26 14:36:11 2025
Version 19.3.0.0.0Copyright (c) 1982, 2019, Oracle.  All rights reserved.连接到:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0SQL> select version from v$instance;VERSION
----------------------------------
19.0.0.0.0SQL> select name,cdb,open_mode,con_id from v$database;NAME               CDB    OPEN_MODE                                    CON_ID
------------------ ------ ---------------------------------------- ----------
ORCL               YES    READ WRITE                                        0SQL> show con_name;CON_NAME
------------------------------
CDB$ROOT
SQL> show pdbs;CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED                       READ ONLY  NO3 ORCLPDB                        READ WRITE NO
SQL> ALTER PLUGGABLE DATABASE ORCLPDB OPEN;
ALTER PLUGGABLE DATABASE ORCLPDB OPEN
*
第 1 行出现错误:
ORA-65019: 插接式数据库 ORCLPDB 已打开SQL> alter session set CONTAINER=ORCLPDB;会话已更改。SQL> CREATE USER ROOTUSER1 IDENTIFIED BY ROOTUSER;用户已创建。SQL> drop USER ROOTUSER1;用户已删除。

查询容器是否CDB

select name,cdb,open_mode,con_id from v$database;

查看当前容器名称

show con_name;

查看已经创建的pdb容器

show pdbs;

打开上述ORCLPDB容器

ALTER PLUGGABLE DATABASE ORCLPDB OPEN;


将当前容器切换到指定的PDB容器中,可插拔数据库(PDB)

alter session set CONTAINER=ORCLPDB;


查看当前容器,会发现以及切换到ORCLPDB的容器了

show con_name;


就可以正常创建用户了

CREATE USER ROOTUSER1 IDENTIFIED BY ROOTUSER;


查看用户是否创建成功

select username from dba_users where username = 'ROOTUSER1';

授予用户权限
创建用户后,需要授予用户执行数据库操作的权限。通常,会授予用户如CREATE SESSION、CREATE TABLE、CREATE VIEW等基本权限,以及根据需要授予更高级的权限。例如:

GRANT CONNECT, RESOURCE TO 用户名;
-- 注意:DBA权限应谨慎授予,因为它提供了对数据库的广泛控制权
-- GRANT DBA TO 用户名; (仅在必要时授予)

使用新创建的用户进行登录
不知道为什么,这个用户无法以普通用户登录,必须以超级管理员 sysdba进行登录才行 

而使用超级管理员登录后,虽然密码输入的是刚新的的用户的密码,但登陆的不是刚创建的用户,而是sys用户


-----------------------------------
©著作权归作者所有:来自51CTO博客作者Robert_Jen的原创作品,请联系作者获取转载授权,否则将追究法律责任
ORA-65096: 公用用户名或角色名无效
https://blog.51cto.com/u_16305703/11685261

ps:这位博主的文章也超赞~欢迎大家也多看看他的其他相关文章。本文只是对文章做了轻微加工。有不足之处还请多多留言~

http://www.dtcms.com/a/410403.html

相关文章:

  • 软考中级习题与解答——第十三章_数据库分析与设计(2)
  • tomcat升级操作
  • 广州高端品牌网站建设后台管理便捷蜜雪冰城推广软文
  • 基于 SpringBoot+Logicflow 的轻流程任务执行
  • 基础组合计数(三道例题)
  • ShardingSphere 与分库分表:分布式数据库中间件实战指南
  • 《三重AI协作交易系统:从技术债泥潭到毫秒级响应的实战笔记》
  • AI 赋能楼宇自控 DDC 系统:重构智慧建筑的核心引擎
  • 更改wordpress密码上海关键词优化排名哪家好
  • 最好的设计师网站wordpress 实例
  • IDEA 实现SpringBoot热部署(HotSwap和DevTools混用)
  • 《IDEA 2025 长效使用指南:2099 年有效期配置实战之JetBrains全家桶有效》​
  • IntelliJ IDEA / Android Studio 里直接跑 Cursor(不用来回切窗口)
  • HarmonyOS应用前后台状态切换
  • 网站建设app销售好做吗哪里长沙网站开发
  • pdf文件根据页数解析成图片 js vue3
  • Http与WebSocket
  • AI 赋能 EMS 微电网能效管理平台:构建分布式能源的智能调控中枢
  • 内网信息收集与命令详解
  • 电茶炉方案开发,茶炉板MCU控制方案分析
  • React Zustand 学习笔记(对照Vue3)
  • PyTorch实现CIFAR-10图像分类:从数据加载到模型训练全流程
  • 鸿蒙应用内存优化全攻略:从泄漏排查到对象池实战
  • ReactUse 与ahook对比
  • 网站建设与维护属于什么岗位wordpress免费企业站主题
  • 长安网站设计仿照别的网站做
  • 如何快速定位bug,编写测试用例?
  • 【LeetCode 142】环形链表 II:寻找环的入口
  • 卷轴 缓冲绘制 超级玛丽demo5
  • 1.9 IP地址和Mac地址