Como criar usuário no Oracle Multitenant 12c sem o prefixo C##

Como criar usuário no Oracle Multitenant 12c sem o prefixo C##

Quando tento criar um usuário sem o prefixo c## recebo o erro ORA-65096:


$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Sat May 16 07:44:23 2020

Copyright (c) 1982, 2014, Oracle. All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Advanced Analytics and Real Application Testing options

SQL> create user ADMDADOS identified by ADMDADOS container=all;
create user ADMDADOS identified by ADMDADOS container=all
*
ERROR at line 1:
ORA-65096: invalid common user or role name

 

Se você deseja criar um usuário comum no CDB$ROOT, crie um usuário iniciando com C## e c## conforme nota abaixo:

ORA-65096: nome de usuário ou função comum inválido
Causa: Foi feita uma tentativa de criar um usuário ou função comum com um nome que não era válido para usuários ou funções comuns. Além das regras usuais para nomes de usuário e função, nomes comuns de usuário e função devem começar com C## ou c## e consistir apenas em caracteres ASCII.
Ação: Especifique um nome de usuário ou função comum válido.

 

Solução:

Obs: Para alterar qualquer parâmetro oculto sempre consulte o suporte da Oracle!


SQL> alter session set "_ORACLE_SCRIPT"=true;

Session altered.

SQL> create user ADMDADOS identified by ADMDADOS container=all;

User created.

SQL> col username for a30
SQL> set lines 180
SQL> select username,common from dba_users where username='ADMDADOS';

USERNAME COM
-------------------- ---
ADMDADOS YES