2009-08-10 8 views

Odpowiedz

6
SELECT grantee 
    FROM all_tab_privs 
WHERE table_name = '<your object name>' 
    AND privilege = 'EXECUTE' 
    AND grantor = '<object owner>'; 

Tak, wiem, mówi "nazwa_tabeli", ale dotyczy również obiektów wykonywalnych. Tabela DBA_TAB_PRIVS działa również. Będziesz potrzebować odpowiednich uprawnień (np. Roli DBA, WYBIERZ WSZELKĄ TALBĘ), aby wybrać te widoki i zobaczyć wszystkie dane.

W odpowiedzi na komentarz Martina ... Powyższe jest najłatwiejszym sposobem zrobienia tego o co prosiłem. Jeśli chcesz ograniczyć je do pakietów, spróbuj tego:

SELECT * FROM all_tab_privs JOIN all_objects ON (table_name = object_name) 
WHERE table_name = '<your object name>' 
    AND object_type = 'PACKAGE' 
    AND privilege = 'EXECUTE' 
    AND grantor = '<object owner>'; 
+0

I był rzeczywiście po obu czymś bardziej ogólnym, czy w konkretnym przypadku pakietu ... – MPritchard

+1

Wszystko jest wybaczone! Dobra stara wyrocznia i jej nonsensowne nazewnictwo tabel systemowych :) – MPritchard

+0

lol, all_tab_privs to straszna nazwa dla tej tabeli – Reimius

Powiązane problemy