DBAtlas · Veritabanı operasyon atlası

Privilege analysis ile kullanılmayan yetkileri tespit et

OracleGüvenlik

Komut

-- 1) Belirli kullanici icin yetki kullanimini yakala:
BEGIN
  DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE(
    name        => 'CAP_APP_KULLANICI',
    description => 'Uygulama kullanicisinin gercek yetki kullanimi',
    type        => DBMS_PRIVILEGE_CAPTURE.G_CONTEXT,
    condition   => 'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''MUSTERI_APP''');
  DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTURE(name => 'CAP_APP_KULLANICI', run_name => 'RUN_2026_10');
END;
/
-- Diger tipler: G_DATABASE (tum DB), G_ROLE (roles => role_name_list('DBA')), G_ROLE_AND_CONTEXT

-- 2) Temsili is yuku (ay sonu dahil) bittikten sonra durdur ve sonuc uret:
BEGIN
  DBMS_PRIVILEGE_CAPTURE.DISABLE_CAPTURE(name => 'CAP_APP_KULLANICI');
  DBMS_PRIVILEGE_CAPTURE.GENERATE_RESULT(name => 'CAP_APP_KULLANICI', run_name => 'RUN_2026_10');
END;
/

-- 3) Kullanilan ve hic kullanilmayan yetkiler:
SELECT username, sys_priv, obj_priv, object_owner, object_name, used_role
FROM   dba_used_privs   WHERE capture = 'CAP_APP_KULLANICI';
SELECT username, sys_priv, obj_priv, object_owner, object_name
FROM   dba_unused_privs WHERE capture = 'CAP_APP_KULLANICI';

-- 4) Yetki hangi rol zinciri uzerinden kullanildi?
SELECT username, sys_priv, used_role, path
FROM   dba_used_sysprivs_path WHERE capture = 'CAP_APP_KULLANICI';

-- 5) Temizlik:
EXEC DBMS_PRIVILEGE_CAPTURE.DROP_CAPTURE(name => 'CAP_APP_KULLANICI');

Ne yapar?

Privilege analysis, belirlenen kapsamda (tüm DB, rol, koşul) çalışma zamanında hangi sistem/nesne yetkilerinin gerçekten kullanıldığını kaydeder; sonuçta kullanılmayan yetkiler listelenir ve en az yetki (least privilege) prensibine göre REVOKE planlanır.

Ne zaman kullanılır?

DBA/ANY yetkili uygulama hesaplarını temizlerken, denetim öncesi yetki gözden geçirmede, hazır (packaged) uygulamanın gerçekten neye ihtiyaç duyduğunu çıkarmak için.

Dikkat

2018'den itibaren Enterprise Edition'a dahildir (önceden Database Vault lisansı gerektiriyordu); ek lisans gerekmez. Yakalama sırasında az da olsa ek yük vardır. Sonuç yalnızca yakalama penceresindeki iş yükünü yansıtır: ay sonu, yıl sonu veya acil durum işleri çalışmadıysa "kullanılmıyor" görünen yetki aslında gerekebilir; REVOKE'u kademeli yap. Aynı anda yalnızca bir capture etkin olabilir; tek istisna, bir G_DATABASE capture'ının rol veya context tipindeki bir capture ile birlikte etkin olabilmesidir.

DBAtlas'ta aç →

İlgili