Database’ in güvenliğinin sağlanması için belirli periyotlar arasında şirketlerin güvenlik birimleri aracılığıyla (özellikle bankalar bu konuda en hassas olan kurumlardır) database’ deki kullanıcıların yetkileri sorgulanır ve fazla olduğu düşünülen yetkilerin revoke edilmesi istenir. Ancak production sistemlerde yetki almak kimi aman çokda kolay olmamaktadır. Yetki revoke edildiğinde uygulamanın bu durumdan etkilenip etkilenmeyeceği, ilgili user tarafından bu yetkinin kullanılıp kullanılmadığı tam olarak kestirilemediği durumlar olabiliyor. Hal böyle oluncada yetkiyi revoke etmeye cesaret edilemediği durumlar yaşanmıyor değil 
Oracle 12c ile birlikte aslında bu soruna cevap bulunmuş oldu. Dbms_privilege_capture paketi ile kullanılan user hangi yetkinin kullanıldığını capture eden faydalı bir package’ dir. Privilege kullanıldığı zaman capture edildiğinden dolayı bu paket aracılığıyla toplanan yetkiler kullanılan yetkiler olarak yorumlanmalıdır.
Şimdi bu işlemi nasıl yapabileceğimiz den ve dbms_capture_privilege paketinin kullanımından bahsedelim.
DBMS_PRIVILEGE_CAPTURE paketinin spec’ ine baktığınız da 5 adet procedureden oluştuğunu görebilirsiniz.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | CREATE OR REPLACE PACKAGE SYS.dbms_privilege_capture AS  -- Capture Types   g_database            CONSTANT NUMBER := 1;   g_role                CONSTANT NUMBER := 2;   g_context             CONSTANT NUMBER := 3;   g_role_and_context    CONSTANT NUMBER := 4;   PROCEDURE create_capture(     name            IN  VARCHAR2,     description     IN  VARCHAR2 DEFAULT NULL,     type            IN  NUMBER DEFAULT G_DATABASE,     roles           IN  role_name_list DEFAULT role_name_list(),     condition       IN  VARCHAR2   DEFAULT NULL);   PROCEDURE drop_capture(name  IN VARCHAR2);   PROCEDURE enable_capture(name  IN VARCHAR2);   PROCEDURE disable_capture(name IN VARCHAR2);   PROCEDURE generate_result(name IN VARCHAR2); END; / | 
