ORA-65096: invalid common user or role name

Oracle 12c ile bilirkte container database kurulumu yaptıysanız artık yeni yapıda daha önceki versiyonlarda almadığınız bir takım hatalar alabilirsiniz. Örneğin 11g ve öncesinde çok basit bir user create işlemi olan aşağıdaki komut artık 12c ile birlikte aşağıdaki hatayı verir oldu.

12c ile birlikte yapı değiştiğinden dolayı artık create etmeye çalışılan user hangi pluggable database altına create edilecekse öncesinde bunu set etmemiz gerekiyor. Aslında bu hatanın bikaç tane çözüm yolu var öncesinde en optimum çözümden bahsedelim;

Öncelikle kurmuş olduğumuz database içerisindeki tüm servisleri select edelim ;

t1 database’ ine user create edeceksek username başına c## ekleyerek userı create etmek gerekir. (t1 bir pluggable database olmadığından dolayı) ;

SQL> create user c##kamil identified by kamil ;
User created.

Şu anda hangi container’ da olduğumuzu da sorgularsak ;

SQL>show con_name
CON_NAME
——————————
CDB$ROOT
SQL>

Eğer pluggable database’ lerden birine user create etmeniz gerekiyorsa da örneğin ;

Pdbt12 pluggable database’ ine de bir test userı oluşturalım ;

SQL> alter session set container=PDBT12;
Session altered.

SQL> ALTER PLUGGABLE DATABASE pdbt12 OPEN;
Pluggable database altered.

SQL> create user kamil identified by kamil;
User created.

Şimdi database’ deki test adı ile başlayan userları select ettiğimiz de ;

Hem local pluggable database de KAMIL adı altında bir user olduğunu hemde ortak database’ deki KAMIL userını görebiliriz. C##ile başlayan userlar container database’ inde tanımlı olan userları kastetmektedir.

Bu hatayı gidermenin 2. yöntemi ise ;

Aşağıdaki oracle hidden parametresi alter edilerek true olarak set edildiğinde c## prefix’ sine gerek olmadan komutumuz olduğu gibi çalışacaktır ;

SQL> alter session set “_ORACLE_SCRIPT”=true;
Session altered.

SQL> create user test identified by test ;
User created.

Ancak bu şekilde yapılması çok önerilmez sonuçada create edilmeye çalışılan userın hangi db altına olacağının set edilmesi sonrasında yaşanacak olan karışıklığında önüne geçecektir.

User create edilme işlemi ile ilgili olarak aşağıdaki gibi create edilmeye çalışılması durumunda da benzer hata alınacaktır ;

Benzer şekilde;

Bu hataların da çözümü yukarıda belirtmiş olduğum açıklama ile aynı şekilde çözülecektir. Mantık aynı aslında ortak database yani container db’ ye user create ediliyorsanız mutlaka c## prefix’ ini kullanmanız gerekir, userı pluggable database’ e oluşturacaksanız da öncesinde mutlaka hangi pluggable database’ de çalışacaksanız onu set etmeniz (örneğin; alter session set container=pdbt12) gerekiyor.

Be Sociable, Share!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


beş + = 14