2009-08-10 7 views

Respuesta

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

Sí, lo sé, dice "table_name" pero también se aplica a los objetos ejecutables. La tabla DBA_TAB_PRIVS también funciona. Necesitará los permisos adecuados (por ejemplo, función de DBA, SELECCIONE CUALQUIER TALBE) para seleccionar entre estas vistas y ver todos los datos.

En respuesta al comentario de Martin ... Lo anterior es la manera más fácil de hacer lo que me pediste que yo sepa. Si desea limitarlo a los paquetes, intente esto:

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

realidad estaba bien después de algo más general, o un caso específico de paquete ... – MPritchard

+1

Todo se perdona! Buen viejo oráculo y su nombre sin sentido de tablas del sistema :) – MPritchard

+0

lol, all_tab_privs es un nombre terrible para esta tabla – Reimius

Cuestiones relacionadas