ora-65096解決方案
創建用戶命令:
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##newuser identified by newuser;(此時創建的用戶名稱在表user$中為: ##newuser),不是我們需要的newuser;
b.在表user$中查找新建的表對應的user#;
命令: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;
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 AJAO;
至此,ORACLE 12C PDB的PDBORCL中創建AJAO用戶完成!