创建命令:
create user newuser identified by newuser;
报错:ORA-65096: invalid common user or role name(公用用户名或角色名无效).
错误原因:
用户想在PDBORCL中创建newuser用户,却未设置会话container到PDB,而在CDB中创建公有用户因无法通过名称或角色验证出错.
1.解决方案一
a.创建用户的时候用户名以c##或者C##开头
命令:create user c##jzyx identified by jzyx; (此时创建的用户名称在表user$中为: ##newuser),不是我们需要的newuser;
命令:select * from user$ t where t.name like '%newuser%';
取出user#的值,这里假设为108;
c.手动将用户名称##newuser修改为newuser;
命令:update user$ set name='newuser' where user#=108;
commit;
d.强制刷新
alter system checkpoint;
alter system flush shared_pool;
d.重新设置密码newuser
alter user newuser identified by newuser;
2.解决方案二(http://blog.itpub.net/29357786/viewspace-1995055/),摘抄如下:
ORA65096的相关处理流程如下:
1、查看数据库CDB名
select name,cdb from v$database;
2、查看数据库PDB名
col pdb_name for a30
select pdb_id,pdb_name,dbid,status,creation_scn from dba_pdbs;
select con_id,dbid,NAME,OPEN_MODE from v$pdbs;
3、设置会话PDB指定的容器库
alter session set container=pdborcl;
4、创建PDBORCL库用户
--注意需要先确定数据库中有users表空间、temp临时表空间
create user ajao identified by ajao default tablespace users temporary tablespace temp;
5、授权
grant create user,drop user,alter user,create any view,connect,resource,dba,create session,create any sequence to c##jzyx;
至此,ORACLE 19C PDB的PDBORCL中创建AJAO用户完成!
create user c##jzyx identified by jzyx;
grant create user,drop user,alter user,create any view,connect,resource,dba,create session,create any sequence to c##jzyx;
其实总结出来比较有用的两句就是创建用户和授权
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?