Merhaba,
STARK kullanıcısına view üzerinden yetki verme işlemi öncesi herhangi bir view e select sorgusunu test ediyoruz;

Henüz yetkisi olmadığı için tabloya veya view e erişimi yok görünüyor. Yetkili kullanıcıdan atamayı yapıyoruz;
GRANT SELECT ON DB_STOK TO STARK;

Yetkiyi verdikten sonra tekrar STARK kullanıcısında sorguyu çalıştırıyoruz;

Başarılı bir şekilde ilgili tabloya da eriştiğini görüyoruz.
Genel olarak şuana kadar STARK kullanıcısına hangi yetkileri verdiğimizi görmek için; dba_tab_privs ve dba_objects view lerinini sorgulamamız gerekiyor;
SELECT
tp.table_name,
tp.privilege,
tp.grantee,obj.owner
FROM
dba_tab_privs tp
JOIN
dba_objects obj ON tp.table_name = obj.OBJECT_NAME
WHERE
tp.grantee = 'STARK'
AND obj.owner = '****';

HAKACTION tablosunda DELETE ve SELECT haklarının kısıtsız bir şekilde verildiğini,
DB_STOK view ünde de SELECT hakkının olduğunu görüyoruz.
Peki kısıtlı olarak verdiğimiz kolon bazlı yetkileri görmek için ise dba_col_privs view ü nü sorgulamamız gerekiyor;
SELECT
table_name,
column_name,
grantee,
privilege
FROM
dba_col_privs
WHERE
grantee = 'STARK'
AND owner = '****';

Bu işleme göre de HAKCTION tablosunda INSERT işlemi için sadece CHANGEDAT,REQNUM kolon yetkilerim varken, UPDATE işlemi için sadece CHANGEDBY,CREATEDBY kolon yetkilerim var.
MaterialView yetkisi vermek için ise aşağıdaki scripti kullanıyoruz;
GRANT SELECT ON materialized_view_name TO STARK;
Şimdi de store procedure yetkisi için testlerimizi yapıyoruz;
STARK kullanıcısına herhangi bir yetki vermeden , must be declared hatası alıyoruz.

yetkili kullanıcıdan STARK a SP yi çalıştırabilmesi için yetkiyi veriyoruz;

STARK kullanıcısı tekrar sp yi çalıştırıyor;

Son olarak tekrar kullanıcının database üzerindeki tüm yetkilerine baktığımızda

prosedürün de eklenmiş olduğunu görüyoruz…