Privilege analysis ile kullanılmayan yetkileri tespit et
OracleGüvenlikKomut
-- 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.
İlgili
- TDE keystore oluştur, aç, master key üret ve yedekle (19c+)
- Tablespace'i TDE ile şifrele (yeni ve mevcut tablespace, online/offline)
- Unified Auditing politikası oluştur, koşullu etkinleştir, kayıtları izle, kaldır
- VPD (DBMS_RLS) ile satır düzeyinde erişim politikası ekle
- Parola politikası için profile oluştur ve kullanıcıya ata