Hurriyet

5 Eylül 2013 Perşembe

Oracle Veritabanı Yönetimi: Kullanıcı Yetkileri - User Privileges

Oracle veritabanında kullanıcılar bütün işlemlerini sahip oldukları yetkilere göre yaparlar. Bir kullanıcıya vereceğiniz yetkilere göre o kullanıcı database'e bağlanabilir. Bunun birlikte vereceğiniz yetkiler yeterli olmayabilir. Örneğin kullanıcıya vereceğiniz create session yetkisiyle kullanıcı database'e bağlanırken, hala herhangi bir  nesne, tablo veya index gibi database object'lerini yaratamaz. Başka nesne'ler üzerine de select çekemez veya insert,update,delete gibi DML işlemlerini gerçekleştiremez.

Yukarıda bahsettiğimiz örneklerden başka backup almak, export-import etmek, procedure, function yaratmak ve bunları çalıştırmak hep yetki gerektiren işlerdir. Bunun için bazı yetkilerimizin var olup olmadığını öğrenmek ve görmek için aşağıdaki sorguları kullanabiliriz.

Kullanıcının Sahip Olduğu Tablo Yetkileri
Burada bahsettiğimiz USER bir key word'dur. Instance'ı açılan kullanıcının adına denk gelir. Kendi kullanıcınızın yetkilerini öğrenmek istiyorsanız USER keyword'unu değiştirmeniz gerekmez.

Select * from dba_tab_privs where grantee=USER;  

Bununla birlikte eğer dba yetkileriniz varsa buradan grantee kısımına başka bir kullanıcı adı koyup, tablo adı da eklersek güvenlik amaçlı kimin hangi tablo üzerinde select, insert, update, delete gibi yetkileri olduğunu görebiliriz.

Select * from dba_tab_privs where grantee= and table_name='EMPLOYEES';

Login Olan Kullanıcının Session İçindeki Yetkileri


 select * from session_privs;  

Yukardaki tablolar bize yetmediyse aşağıdaki gibi her zaman dictionary'den yetkilerle ilgili farklı tabloları aşağıdaki gibi bulabiliriz.

 select table_name from dict where table_name like '%PRIVS%';

Bakılacak belli başlı tablolar aşağıdaki gibidir.

 select * from dba_role_privs;  
 select * from dba_sys_privs;  
 select * from dba_tab_privs;  
 select * from user_sys_privs;  
 select * from session_privs;  







Hiç yorum yok:

Yorum Gönder