背景:使用SQL Plus 新增用户
SQL脚本:CREATE USER WARDROBE IDENTIFIED BY wardrobe123456 DEFAULT TABLESPACE WARDROBE TEMPORARY TABLESPACE WARDROBE_TEMP;
脚本含义:创建名为WARDROBE,密码为wardrobe123456,指定表空间为WARDROBE,临时表空间为WARDROBE_TEMP;
错误代码:ORA-65096: 公用用户名或角色名无效
原因:
(1)默认情况下,公共账号的名字必须使用C##开头,必须C##WARDROBE。
初始化参数COMMON_USER_PREFIX指定了公共账号、角色和配置文件Profile的前缀。可通过SHOW PARAMETER COMMON_USER_PREFIX;查看。
(2)当使用SQLPlus或其他工具以sysdba身份登录Oracle 12c及以上版本时,默认连接的就是CDB$ROOT容器数据库。在CDB$ROOT中创建的账号,是公共账号。公共账号可以使用同样的用户名和密码登录到所有的PDB可插拔数据库。而在PDB中创建的账号,是本地账号。