Oracle PL / SQL: Listing Allowed Procedures for an Account

I researched here and elsewhere, but could not find the answer to the following.

I would like to get a list of all available procedures for my Oracle application (AFAIK, they are part of a single package), and tried the following command in sqlplus:

 SELECT * from user_procedures;

However, this only returns one line / procedure, when in fact the application has probably 20+ procedures that it calls (successfully) on a regular basis. I can just look at the source code and extract all the names of the stored procedures, but I would like to use the above and see how it works, and as a basis for further study of db to help in debugging (instead of always requiring, for example, running the application or write test client code).

Is the above operator only return procedures owned by my account, or should it show what the account has access to? [I am not very familiar with Oracle features.]

I tried other options; for example, referring to the results of "dba_procedures" in a "table or view, there is no error."

Are all these symptoms the result of limited access rights to my Oracle account (which I use to connect via sqlplus)?

[Background: dysfunctional environment - direct access to the DBMS and its external owners is extremely limited, so I would like to be able to expand my understanding of db design and get the necessary information without help.]

+3
source share
3

, :

select ao.object_type, ao.owner ||'.'|| ao.object_name
from all_objects ao, user_tab_privs utp
where ao.object_type = 'PROCEDURE'
and utp.owner = ao.owner
and utp.table_name = ao.object_name
and utp.privilege = 'EXECUTE';

, AFAIK, , :

select ao.object_type, ao.owner ||'.'|| ao.object_name
from all_objects ao, user_tab_privs utp
where ao.object_type = 'PACKAGE'
and utp.owner = ao.owner
and utp.table_name = ao.object_name
and utp.privilege = 'EXECUTE';

[ribe] , . , , , - , knwo, ...

+4

user_procedures - , , (). , ​​ ().

DBMS_METADATA.GET_GRANTED_DDL. - . , .

, .

+1

If the procedures are part of the package (that is, you call them on PACKNAME.PROCNAME, then you have an all-or-nothing grant on the package, and not separate procedures inside the package.

+1
source

Source: https://habr.com/ru/post/1732576/


All Articles