How do I set permissions for Package Body
Anything else in addition to EXECUTE? When granting DEBUG, you implicitly "get" EXECUTE on the PACKAGE BODY (I replaced EABINTEG with U2 in your query):

SQL&gt; create user u1 identified by u1;

User created.

SQL&gt; create user u2 identified by u2;

User created.

SQL&gt; grant create session to u1, u2;

Grant succeeded.

SQL&gt; create package u1.p1 as
  2  procedure pr1;
  3  end;
  4  /

Package created.

SQL&gt; create or replace package body u1.p1 as
  2  procedure pr1 as
  3    begin
  4      null;
  5    end;
  6  end;
  7  /

Package body created.

SQL&gt; grant execute on u1.p1 to u2;

Grant succeeded.

SQL&gt; conn u2/u2
Connected.

SQL&gt; @yourquery

OWNER NAME  TYPE                GRANTS
----- ----- ------------------- ------------------------------
U1    P1    PACKAGE             EXECUTE


Seems ok so far.

SQL&gt; conn u1/u1
Connected.
SQL&gt; grant debug on u1.p1 to u2;

Grant succeeded.

SQL&gt; conn u2/u2
Connected.

SQL&gt; @yourquery

OWNER NAME  TYPE                GRANTS
----- ----- ------------------- ------------------------------
U1    P1    PACKAGE             DEBUG, EXECUTE
U1    P1    PACKAGE BODY        DEBUG, EXECUTE


If you revoke DEBUG now, the PACKAGE BODY row disappears.

SQL&gt; conn u1/u1
Connected. 
SQL&gt; revoke debug on u1.p1 from u2;

Revoke succeeded.

SQL&gt; conn u2/u2
Connected.
SQL&gt; @yourquery

OWNER NAME  TYPE                GRANTS
----- ----- ------------------- ------------------------------ 
U1    P1    PACKAGE             EXECUTE