2 Ağustos 2010 Pazartesi

sqlplus / as sysdba = Insufficient Privileges

Merhabalar,

Bir veritabanına sqlplus komutu ile sysdba olarak bağlanmaya çalışmaktasınız fakat bunu başaramıyorsunuz. Bir veritabanına bağlanmanın (sqlplus ile) birkaç yolu bulunuyor. Bunları kısaca listelersem;

sqlplus / as sysdba --> Komutun koştuğu makine üzerindeki Oracle veritabanına bağlanır. Bağlanılacak veritabanı ya da ASM instance'ını ORACLE_SID parametresi belirler. Onun için öncelikle ORACLE_HOME ve ORACLE_SID gibi parametrelere bakılmalıdır.

sqlplus sys/password@ORCL as sysdba -->TNSNAMES.ora dosyası kontrol edilir ve ORCL tanımlı ise ilgili veritabanına giriş denenir.

Bu iki komutu koştuğunuz zaman alabileceğiniz potansiyel hatanın adı "Insufficient Privileges" olacaktır, yani yetersiz yetkiler. İki komuttan aynı hatayı alabilmenize rağmen bakmanız gereken yerler başkadır. Komutların amacı ve çıkan hata aynı olsa da bakacağınız yer farklı olacaktır. Bu, gündelik hayatta oldukça sık rastlanan bir hatadır.

1) SQLPLUS / AS SYSDBA: Bu komutu girerek ilgili hatayı almışsanız eğer bakmanız gereken iki nokta bulunuyor. Bunlardan ilki oracle kullanıcınızın bağlı olduğu grup, diğer de SQLNET.AUTHENTICATION_SERVICES. Bu parametreyi bulacağınız yer sqlnet.ora dosyasıdır ve bu dosya da $ORACLE_HOME/network/admin/ dizini altında yer almaktadır. Bu parametrenin varsayılan değeri "none" fakat all ya da NTS olarak ayarlanabilmektedir.
SQLNET.AUTHENTICATION_SERVICES(NONE) ise / as sysdba ile bağlanamayabilirsiniz. Bu parametreyi ya NTS olarak ayarlayabilir ya da başına bir "#" koyarak devre dışı bırakabilirsiniz.
Oracle kullanıcısının bağlı olduğu grup eğer DBA grubu değilse ve SQLNET.AUTHENTICATION_SERVICES parametresi de kapalı durumda bekliyorsa, buradaki sorun da Oracle kullanıcısının dba olmamasından kaynaklanıyor demektir.

USERADD -G dba oracle

Yukarıdaki komutu gönderdiğiniz zaman Oracle kullanıcısı artık DBA grubunun altında yer alacaktır ve probleminiz çözülecektir.

2) SQLPLUS SYS/PASSWORD@ORCL AS SYSDBA: Bu komutu gönderdiniz ve ilgili hatayı aldınız. Bu durumda ise bakılması gereken yer password file olacaktır. Password file'ın bulunduğu yer $ORACLE_HOME/dbs/ ya da windows'lar için /database/ dizinidir. Bir password dosyanız olmayabilir ya da yanlış şifre ile kaydedilmiş olabilir. Yeniden yaratmak ya da var olanı düzelmek için;

CD $ORACLE_HOME/dbs/
ORAPWD FILE=orapworcl password=password force=y

Bu dosyayı yeniden yarattığınız zamansa sqlplus sys/password@orcl as sysdba komutunu göndererek veritabanına bağlanabiliyor olacaksınız.

Hatanın çözümü basit ancak keşfetmesi zordur. Özellikle yeni kurulum yapmış ve Oracle'a yeni adım atmış arkadaşların sıklıkla karşılaşabileceği türden bir hatadır.

İyi çalışmalar.

Ogan

Hiç yorum yok:

Takip et: @oganozdogan