Oracle-Kullanıcıyı Tablo Üzerinde Kısıtlı Yetkilendirme

Merhaba,

Bir önceki yazımızda oracle üzerinde scriptlerle kullanıcı oluşturmak için gerekli yetkilerle kullanıcı oluşturma ve login aşaması senaryolarını incelemiştik.

Son olarak da bir tabloya select sorgusu göndermiştik fakat SQL Error [942] [42000]: ORA-00942: table or view does not exist hatası almıştık. Henüz STARK kullanıcısında bir yetki vermemiştik.

Şimdi ilk olarak bir tablo üzerinden select hakkı vereceğiz.

GRANT SELECT ON HAKACTIONS TO STARK;

Eğer bir şema altındaysa erişmek istediğimiz tablo ve her defasında şema ismini yazmaması için STARK kullanıcısının default şemasını değiştirebiliriz. Bunu yaparken erişeceği view sp gibi db nesnelerinde farklı bir şemanın kullanılmadığından emin isek tabi..

ALTER USER STARK DEFAULT TABLESPACE SCHEMA_NAME;

STARK kullanıcısına tabloya select atma yetkisi verdik. STARK bağlantısında bunu test ediyoruz;

SELECT COUNT(CHANGEDBY) AS RWCOUNT FROM HAKACTIONS;

Select atabiliyor hale geldi kullanıcı. yeni oluşturduğumuz kullanıcının “tablespace” altında şuan sadece HAKACTIONS isimli tabloya erişebildiğini görüyoruz.

update delete insert yetklileri için de sırasıyla aşağıdaki scriptleri çalıştırıyoruz.

GRANT UPDATE, DELETE, INSERT ON HAKACTIONS TO STARK;

Buradaki script tablo üzerinde tam denetim vermiş olduk. Bunu aşağıdaki gibi daha da sınırlandırabiliriz.

GRANT UPDATE (CREATEDBY, CHANGEDBY), DELETE, INSERT (REQNUM, CHANGEDAT) ON HAKACTIONS TO STARK;

Bu scriptle de CREATEDBY, CHANGEDBY kolonlarına update etme hakkı veriyorken, REQNUM, CHANGEDAT gibi kolonlar üzerinden de insert yetkisi verilmiştir. Bu hali ile db de yetkiyi tanımlayıp test edelim;

yetkiyi dba tarafında verdikten sonra STARK kullanıcısında test ediyoruz; Update yetkisini sadece CREATEDBY ile CHANGEDBY kolonlarına vermiştik, fakat CHANGEDAT kolonunu update etmeye çalıştığımızda aşağıdaki gibi uyarıyı almış olduk. güzel.

şimdi de izin verdiğimiz şekilde bir kolonu update etmeye çalışalım;

temiz bir şekilde güncelledi kolonu.

bir tane de insert senaryosu çalıştıralım;

Insert scriptinde izin verilen kolonların dışındakiler için de izinde data girip kaydetmeye çalıştığımda beklediğim gibi hatayı aldım.

STARK kullanıcısna izin verilen kolonlarla verileri girmek istediğimdeyse kaydetme işlemi başarılı oldu.

Tüm verilen bu yetkileri geri almak için ise ;

REVOKE SELECT, UPDATE, INSERT, DELETE ON HAKACTIONS FROM STARK;

scriptini yetkili kullanıcıda çalıştırmamız gerekiyor.

Kullanıcıya tablo üzerinde kısıtlı imkanları içeren yetkileri vermiş ve de nasıl alınacağını görmüş olduk…

Yorum bırakın