Password File Ve Orapwd Utility
ORAPWD.ORA dosyası yönetimsel ayrıcalıklara sahip kullanıcılar için şifreleri saklar.
Default konumu ve adı linux için: $ORACLE_HOME/dbs/orapw$ORACLE_SID.ORA
Windows sistemlerde: %ORACLE_HOME%databasePWD%ORACLE_SID%.ora şeklindedir.
Özel yetkili kullancıları görmek için ;
SQL> select * from v$pwfile_users;
USERNAME SYSDBA SYSOPER SYSASM
—————————— —— ——-——— —————
SYS TRUE TRUE TRUE
IFSAPP TRUE FALSE FALSE
Bir kullanıcıya sysdba rolü verdiğinizde selecte geldiğini görebilirsiniz.
scott’a sysdba rolü verelim,selecti yeniden çekelim.
SQL> grant sysdba to scott;
SQL> select * from v$pwfile_users;
USERNAME SYSDBA SYSOPER SYSASM
—————————— —— ——- —————
SYS TRUE TRUE TRUE
IFSAPP TRUE FALSE FALSE
SCOTT TRUE FALSE FALSE
SQL> grant sysdba to scott;
ORA-01994: GRANT failed: password file missing or disabled
Eğer yetki verirken bu hatayı alıyorsanız;
-password file kaybolmuştur,silinmiştir.
-ya da remote_login_passwordfile=NONE olarak set edilmiştir.
Bu durumda yeniden password file oluşturmalıyız.Password file oluştururken orapwd toolunu kullanırız,genel syntax aşağıdaki gibidir.Eğer password file var ve yeniden oluşturmak istiyorsanız önce mevcut password file’ı silmeniz iyi olur..
cmd> orapwd file=filename password=password entries=max_users ignorecase=y
Linux ve Windows password file oluşturma örnekleri;
$ orapwd file=orapwSID password=sys_password force=y nosysdba=y
$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=secret
$ orapwd file=orapwprod entries=30 force=y
C:orapwd file=%ORACLE_HOME%databasePWD%ORACLE_SID%.ora password=2012 entries=20
C:orapwd file=D:oracle11gproduct11.1.0db_1databasepwdsfs.ora password=id entries=6 force=y
$ orapwd file=orapwPRODB3 password=abc123 entries=10 ignorecase=n
$ orapwd file=orapwprodb password=oracle1 ignorecase=y
Remote_login_passwordfile parametresi:
Mevcut Remote_login_passwordfile değerini sorgularsak;
SQL> show parameter passw;
NAME TYPE VALUE
———————————— ———– ———-
remote_login_passwordfile string EXCLUSIVE
Orapwd komutunu çalıştırmadan önce remote_login_passwordfile parametresi set edilmelidir.remote_login_passwordfile parametre değeri 3 farklı value alabilir.
1- NONE: Oracle şifre dosyalarını görmez.Userlar OS tarafından onaylanmalıdırlar.Password file silinmiş olmasıyla eşdeğerdir.Güvenli olmayan hiçbir bağlantıya izin vermez.
2- EXCLUSIVE: Set ederseniz sadece bir database tarafından kullanılabilir ve birden fazla kullanıcı tanımlanabilir.
3- SHARED: Tek tanınan kullanıcı SYS’dir, birden fazla instance’ın oldugu RAC sistemlerde kullanılır,password file instance’lar arasında paylaşılmıştır.Şifre değişikliği ve yeni user ekleme yapılamaz, ancak EXCLUSIVE yapılarak ardından bu işlemler yapılır sonrasında SHARED olarak set edilir..
remote_login_passwordfile parametresini değiştirmek;
SQL> ALTER SYSTEM SET remote_login_passwordfile=SHARED SCOPE=SPFILE;
Dinamik bir parametre değildir ve restart ister.
Faydalı olmasını umarım..