Package is visble in other schemas

Hi,
I have installed PL/SQL package in schema A and did not give any GRANT ON EXECUTE to anybody.
Now when I connect as user B and select * FROM all_objects WHERE object_type = 'PACKAGE' AND owner = 'A'
I get the package. That's first thing I can not understand,
Second even worse, I am able as B user to execute the package within TOAD.
Any idea? Running Oracle 9i
Thanks!

My point is that the role is irrelevant, it is the privilege that is important There are two possible privileges which might this behaviour. EXECUTE ANY PROCEDURE would allow the user to see the source for the package specification and execute the package. CREATE ANY PROCEDURE would allow the user to see the the source for the package specification and body, and change that code, but not execute the package.
So the user B possibly has EXECUTE ANY PROCEDURE - directly or through a role. Alternatively, user A (or their representative) may have grant EXECUTE on the specific package. It's hard to say. The OP needs to familiarise themselves with the relevant Oracle views:
DBA_SYS_PRIVS
DBA_TAB_PRIVS
ROLE_SYS_PRIVS
ROLE_TAB_PRIVSCheers, APC
Blog : http://radiofreetooting.blogspot.com/

Similar Messages

  • "Read Only" open other schema's package body even have write permission

    Oracle SQL Developer 2.1 (2.1.0.63)
    I can view and modify package under my schema, but when I open other schema's package body, it show "Read Only" in status bar and can't type in code editor.
    I'm sure my connected user have write permission and it works fine in old sql developer version.
    Is there some toggle for "read only" view or some issue for new release?

    Not very helpful for you at the moment, but according to EA 2.1. Can't edit another users store procedures. this has been bugged and will hopefully get fixed soon.
    theFurryOne

  • Viewing package/proc/funtion source in other schemas

    There still seems to be some problems with viewing PL/SQL source in other schemas. In TOAD, I can grant SELECT ANY DICTIONARY to a developer and they can see all source in other schemas. In SQL Developer, they see nothing. If I grant EXECUTE ANY PROCEDURE, they can see the package specs, but no body (Note: we do not want developers having this priv).
    Again, our developers need to be able to view the PL/SQL source in other schemas, without having execute privs on said objects, which is very easy in TOAD. I see this issue in many threads, but SQL Developer seems to have not progressed in this area (unless I'm doing something wrong).

    Granting select on dba_source has no affect. Sure, they can get the code from the table, but it would be nice to browse to it in the GUI. Even with "execute any procedure", the package bodies are not visible.
    I've seen similar tools that have this same issue, but somehow the developers of TOAD got it right, a long time ago even. This is the only issue that keeps our development team from jumping on board with this tool.

  • Oracle.DataAccess.Client Package not recognized in local schema

    I am facing a wierd scenario where in I am unable to fetch data from my local schema by calling a package within that. In the real environment, we have the actual production schema that runs on a default schema that has public synonyms defined for all objects in that schema ( tables, packages etc). My objective was to test in my own schema for testing out development activity.
    I am using the ExecuteReader method in the format:
    ExecuteReader(conn, CommandType.StoredProcedure, "Package_name.Procedure_Name", paramBuilderOne.Array).
    When I qualify the package name with the schema like: schema.package.ProcedureName, I am able to retrieve the data.
    In otherwords things are working fine if I write the statement as:
    ExecuteReader(conn, CommandType.StoredProcedure, "Schema_name.Package_name.Procedure_Name", paramBuilderOne.Array)
    However, I would want the Schema name to be implicit , in such a way that it is picked up depending on the user name provided in the connection string and the code can be independant of connection specifics.
    What I have observed is that even though the package does exist in my schema, the system is actually referring to the default schema and looking for data in that schema.
    Any help appreciated.
    Edited by: [email protected] on Jun 17, 2010 12:14 AM
    Edited by: [email protected] on Jun 17, 2010 12:30 AM

    I got the issue. It had to do with the parameters being passed in. One of the params being passed was a Long ( by mistake). Internally this was getting converted to a String data type. Converting the Parameter to Int32 resolved the issue.

  • Restricted view access to other schemas 'showstopper' problem

    I'm tasked with the potential roll-out of SQL Developer across a large number of users (doing away with equivalent software in the process).
    The feedback has been very positive. However, the only real issue stopping the replacement from progressing is that we cannot view certain objects in other schemas (package bodies, triggers etc) ... i.e. we need to connect as the schema owner to view these. This is essential, otherwise everyone would need to know the application schemas password.
    Our current software has the same issue unless the following option in the Options/Startup window is activated: 'Check for access to DBA views. Otherwise, SYS.ALL_xx views will be used when listing objects'. Thereafter the issue is resolved.
    Is there any workaround (e.g. like the above) in SQL Developer?
    Many Thanks.

    Sue, thanks for your reply although I already have access to Package code via tools like SQL*Plus.
    I guess the problem being discussed here is similar to the following thread (for which you have already logged a bug). See:
    How do I view package bodies in another schema ?
    Re: How do I view package bodies in another schema ?
    On a similar issue, I note that there is a possibility that a fix will indeed be implemented in release 1.1. See:
    Package body not visible
    Re: Package body not visible
    Please advise what the current status is relating to a fix?
    Many thanks for any clarification.

  • Is there a way to access object from other schema?

    1. Is there a way to access object from other schema
    Without using synonym/public synonym without prefixing schema owner?
    2. If you do not see any object in all_objects by same name owned by connected user or public, can there still be objects hidden from this view? for instance synonyms created by SYSTEM
    TIA for help

    Well, you missed something somewhere. If there is no
    ALTER SESSION SET CURRENT_SCHEMA=whoeverthen there must be either public synonym for the object as this shows:
    SQL> CREATE USER a identified by a;
    User created.
    SQL> GRANT CREATE SESSION to a;
    Grant succeeded.
    SQL> CREATE USER b identified by b;
    User created.
    SQL> GRANT CREATE SESSION, CREATE PROCEDURE, CREATE PUBLIC SYNONYM to b;
    Grant succeeded.
    SQL> connect b/b
    Connected.
    SQL> CREATE PACKAGE test AS
      2     PROCEDURE testit;
      3  END;
      4  /
    Package created.
    SQL> CREATE PACKAGE BODY test AS
      2  PROCEDURE testit IS
      3  BEGIN
      4     NULL;
      5  END;
      6  END;
      7  /
    Package body created.
    SQL> connect a/a
    Connected.
    SQL> desc b.test
    ERROR:
    ORA-04043: object b.test does not exist
    SQL> connect b/b
    Connected.
    SQL> GRANT EXECUTE ON test TO a;
    Grant succeeded.
    SQL> connect a/a
    Connected.
    SQL> desc b.test;
    PROCEDURE TESTIT
    SQL> desc test;
    ERROR:
    ORA-04043: object test does not exist
    SQL> connect b/b
    Connected.
    SQL> CREATE PUBLIC SYNONYM test FOR TEST;
    Synonym created.
    SQL> connect a/a
    Connected.
    SQL> desc test
    PROCEDURE TESTITAnother possibility without public synonyms is that crv had granted the other user privileges on some object, and the other user creates a private synonym for that. When crv granted privileges on a different object with the same name, the private synonym became valid again. Something like:
    SQL> connect /
    Connected.
    SQL> drop public synonym test;
    Synonym dropped.
    SQL> GRANT CREATE SYNONYM TO a;
    Grant succeeded.
    SQL> connect a/a
    Connected.
    SQL> desc test;
    ERROR:
    ORA-04043: object test does not exist
    SQL> desc b.test
    PROCEDURE TESTIT
    SQL> CREATE SYNONYM test FOR b.test;
    Synonym created.
    SQL> desc test;
    PROCEDURE TESTIT
    SQL> connect b/b
    Connected.
    SQL> REVOKE EXECUTE ON test FROM a;
    Revoke succeeded.
    SQL> connect a/a
    Connected.
    SQL> desc test;
    ERROR:
    ORA-04043: object "B"."TEST" does not exist
    SQL> desc b.test
    ERROR:
    ORA-04043: object b.test does not exist
    SQL> connect b/b
    Connected.
    SQL> DROP PACKAGE test;
    Package dropped.
    SQL> CREATE FUNCTION test (p_num IN NUMBER) RETURN NUMBER AS
      2  BEGIN
      3     RETURN p_num * 10;
      4  END;
      5  /
    Function created.
    SQL> GRANT EXECUTE ON test TO a;
    Grant succeeded.
    SQL> connect a/a
    Connected.
    SQL> desc test;
    FUNCTION test RETURNS NUMBER
    Argument Name                  Type                    In/Out Default?
    P_NUM                          NUMBER                  INSo, I would go looking for the synonyms.
    TTFN
    John

  • Export objects for others schemes

    Hi
    I create Procedures/Packages/Tables in an Scheme , after I Must to Export to other Scheme.
    I have 4 schemes, How can I to create a Script without to need rebuilt all scripts ?

    Are you asking to extract the scripts, if so then use
    OEM or TOAD.
    If you want to import in other schema then use
    fromuser - touser
    RegardsSorry , I did not get to explain very well, My english is horrible;
    Are new objects, with
      Create Table 
      Create or Replace Procedure
      ..etcI Must to pass script to DBA for He to compile

  • Grants needed for form on procedure in other schema

    Hi,
    I'm running Apex 4.1.0.00.32 and want to create a form on a procedure in a package.
    My package is not in the parsing schema.
    The wizard lets me select the schema of the package ("procedure owner") and lists package.procedure in the list.
    When I click next I get
    Error User APEXDEV has no privileges on the RIS schema.
    Contact your application administrator.
    A strange thing here is that APEXDEV is the Apex user I'm logged in as in Apex. There is no schema called that...
    RIS is the schema owning the package, so that's correct.
    I have granted execute on the package to APEXRUN (the parsing schema of the workspace).
    I tried to granet execute to both APEX_PUBLIC_USER and PUBLIC but got the same error.
    A public synonym had no effect either.
    Does anyone know what grants are needed?
    Kind regards
    Tomas

    Well, OOW is over by now...

  • Get dependencies of  other scheme

    Hi
    I logged with a user Clinton , I can to see objects of other Scheme (Owner), How can
    I to get all dependencies of a Package in Other Scheme, for exaple Scheme XPTO
    Thank You in Advance

    refer to all_dependencies.
    Sybrand Bakker
    Senior Oracle DBAHi , I already but no show me

  • How can we copy table from one schema to other schema

    Hi,
    I have create one table in one schema and i want to copy it to other schema.How we can copy table from one schema to other schema

    Hi,
    You can try something like this :-
    SQL> CONNECT SYS/SYS123@SERVER AS SYSDBA
    Connected.
    SQL> CREATE USER TEST_1 IDENTIFIED BY TEST_1;
    User created.
    SQL> CREATE USER TEST_2 IDENTIFIED BY TEST_2;
    User created.
    SQL> GRANT CONNECT,RESOURCE,DBA TO TEST_1;
    Grant succeeded.
    SQL> GRANT CONNECT,RESOURCE,DBA TO TEST_2;
    Grant succeeded.
    SQL> CONNECT TEST_1/TEST_1@SERVER
    Connected.
    SQL> CREATE TABLE TEST_COPY ( TEST_COL NUMBER );
    Table created.
    SQL> INSERT INTO TEST_COPY VALUES ( 1 );
    1 row created.
    SQL> INSERT INTO TEST_COPY VALUES ( 2 );
    1 row created.
    SQL> COMMIT;
    Commit complete.
    SQL> GRANT ALL ON TEST_COPY TO TEST_2;
    Grant succeeded.
    SQL>  CONNECT TEST_2/TEST_2@SERVER
    Connected.
    SQL> CREATE TABLE TEST_COPY AS SELECT * FROM TEST_1.TEST_COPY;
    Table created.
    SQL>  SELECT * FROM TEST_COPY;
      TEST_COL
             1
             2Regards,
    Sandeep

  • How to move one table to other schema

    Hi;
    imagine i have one schema A and i create table in this schema as test. Now i have one other schema,name is B. I wanna move my A.test table to B.test2
    How i can do it?
    thanks

    Following discussion might help How to move the table to the another schema?

  • Can't see DDL of views from other schemas in Developer?

    Hi,
    I've seen elements of this problem in other threads but this problem of course has it's own twist.
    I can see other schema's objects EXCEPT VIEW DDL.
    I have given a user every role and priv that I can and they still can't see the view ddl of another schema. They can see procedures, functions etc. just not the view. I've found that if I use the user that created the users I can see the DDL of all subordinate users. Users created under that schema can not see each others views no matter what rights are given. Interestingly enough sometimes when I look to display view DDL it will flash the DDL briefly before blanking the screen. very frustrating. All the Toad fanboys are crowing about how they couldn't possibly use a tool that doesn't allow them to see other view source.
    I have also looked for settings in the preferences but could find none.
    Is this a bug? It seems like one to me.
    Any help is greatly appreciated.
    Thanks
    Mark

    We have a bug logged for this.
    Sue

  • Error using views from other schema

    Hello,
    i recently had problems using the execute immediate statement in Object Types.
    The SQL statement tried to select from some views which were owned by an other schema.
    Although we had public synonyms on these views and the same dynamic sql could be used out of a stored procedure the usage in the object type raised a "table or view does not exist exception".
    using the same views in the same schema where the object types belonged to, was ok.
    example:
    schema: scott
    view: my_view
    schema: dave
    sql: "select from scott.my.view ....."
    works well from a stored procedure, but nor if used in an object type
    create the view in schema "dave" an then
    sql: "select from my.view ....."
    works fine.
    So is someone aware of this behaviour?
    Is this a bug or a feature?
    regards
    peter

    Hello Geoff,
    here is the sample code.
    If the table my_table belongs to the same
    schema runningthe code the code runs with
    no exception.
    But if the table belongs to an other schema
    (lets say SCOTT),
    only having global synonyms and the rigths to
    select on it, the code will raise an exception "table or view does not exist"
    even if we use SCOTT.my_table in the
    select.
    create type query_o as object(
    dummy integer,
    static function get_query return
    varchar2;
    create or replace type body query_o as
    static function get_query return varchar2
    as
    query varchar2(4000) :=
    'select ' | |
    ' f.amount_month ' | |
    'into :r1 ' | |
    'from ' | |
    ' my_table f ' | |
    'where id=:p1 ';
    begin
    return query;
    end;
    end;
    create type consumer_o as object(
    amount_month number,
    member function find(p_id in integer)
    return consumer_o
    create type body consumer_o as
    member function find(p_id in integer)
    return consumer_o
    as
    l_amount number;
    begin
    execute immediate query_o.get_query()
    using out l_amount,
    in p_id;
    return consumer_o( l_amount );
    end;
    end;
    kind regards
    peetr

  • Select from a table from other schema

    Hi,
    I want to make a select from a table how is into other Schema and into other instance.
    form example, if I have _2 schemas (in diferent instances)_:
    SCHEMA1 =
    *(DESCRIPTION =*
    *(ADDRESS =*
    *(PROTOCOL = TCP)*
    *(HOST = XXX.XXX.XXX.XX1)*
    *(PORT = 1560)*
    *(CONNECT_DATA =*
    *(SERVER = DEDICATED)*
    *(SERVICE_NAME = SCHEMA1)*
    SCHEMA2 =
    *(DESCRIPTION =*
    *(ADDRESS =*
    *(PROTOCOL = TCP)*
    *(HOST = XXX.XXX.XXX.XX2)*
    *(PORT = 1560)*
    *(CONNECT_DATA =*
    *(SERVER = DEDICATED)*
    *(SERVICE_NAME = SCHEMA2)*
    and into SCHEMA2 there is a table TABLE_A.
    If I`m connected into SCHEMA1:
    how can I do to make a select from the TABLE_A?
    thanks very much.

    1) Referring to an entry in the tnsnames.ora file as a "schema" as you have here with schema1 and schema2 is likely to be confusing. You have multiple schemas in the same database-- in this case, you appear to be trying to query tables in a different database. If we try to answer using your TNS aliases "schema1" and "schema2", there is likely to be a great deal of confusion between schemas/ databases/ and TNS aliases. So I will assume that your tnsnames.ora file actually reads
    TNS_ALIAS1 =
      (DESCRIPTION =
        (ADDRESS =
          (PROTOCOL = TCP)
          (HOST = HOST1)
          (PORT = 1560)
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = DB1)
    TNS_ALIAS2 =
      (DESCRIPTION =
        (ADDRESS =
          (PROTOCOL = TCP)
          (HOST = HOST2)
          (PORT = 1560)
      (CONNECT_DATA =
        (SERVER = DEDICATED)
        (SERVICE_NAME = DB2)
    )2) Given the TNS aliases above, assuming that we are talking about the tnsnames.ora file on HOST1, you would need to create a database link from DB1 to DB2. You can either specify a fixed username and password for the database link or you can specify that the connection happens as the current user (which assumes that the passwords are synchronized between the databases).
    CREATE DATABASE LINK to_db2
      CONNECT TO username_on_db2
      IDENTIFIED BY password_on_db2
      USING 'TNS_ALIAS2'3) Assuming the database link is in place
    SELECT *
      FROM schema2.table_name@to_db2Justin

  • How to get the own schema data while calling the other schema's Procedure

    Hello Experts,
    I'm Sanjit, new to OTN forum.
    I'm using Oracle 10g 10.1.0.2.0 database. Another user Sush has created one procedure proc_1 like
    create or replace procedure proc_1
    as
    v_total number;
    begin
    select sum(amt) into v_total from trans_master where dot
    between add_months(sysdate,-3) and sysdate;
    dbms_output.put_line('last three months total transactions is: '||v_total);
    end proc_1;
    He has the Trans_master table and having 280 records and I have the same Trans_master table with 430 records
    inserted in last 3 months. He has granted execute privileges on the procedure Proc_1 to me. When I call the procedure
    I cannot call it directly like my own schema procedures: Exec Proc1;
    I am calling like : Exec Sush.Proc1 to get the result. My issue is: when the procedure is called,
    it is accessing the data from the Sush schema Trans_master table with 280 records total, but I want
    the procedure to get the total amount of transaction of 430 records from my own Trans_master table.
    Please resolve my issue which would be a great help. And is there any way to call the procedure of other schema
    by not attaching the owner name of the object with it?
    Thanks
    Sanjit

    Pleast take a look at "Definer's rights and invoker's rights" in the following article:
    http://docs.oracle.com/cd/E11882_01/timesten.112/e21639/accesscntl.htm#BABDDCHC
    I guess you need to define a stored procedure with "invoker's rights".
    If this is what you are looking for will have to define it in the stored procedure that you are going to call.
    The syntax is as follows:
    create or replace procedure <yourprocedure> authid current_user ...
    ...or (the following is the default, you don't have to use the "authid definer" keywords):
    create or replace procedure <yourprocedure> authid definer ...
    ...hm

Maybe you are looking for

  • Adobe InDesign CS6 (8.0) Asset.placeAsset(document) getting undefined

    UPDATE: I commented out the addpage line and the script ran without any issues. So the error seems to come about when adding a page and then adding the library asset to it. So the question seems to lie in , "how to add a library asset on a new page?"

  • Error when loading LCDS application

    Hi, I'm implementing an application using LCDS 3.1 data management service together with Fiber. I got the following error occasionally during the loading of my application in browse window. Error: DataService error. Configuration not present.        

  • Calculated items to be created on rows as well as on columns of a pivot tab

    Hello Experts, My Report has 3 columns . First is Hierarchy(parent-child) column, second is Fiscal Month and third a measure. I have multiple groups and calculated items added in selection pane for the Hierarchy column. I created a pivot table using

  • Inoperatable favorites page

    When trying to add contacts to the favorites --- there is np + button in the upper right corner. also there is no add to favorites button in the info page.

  • [solved] Selecting init level 3 instead of default 5

    I messed up my X, it freezes the computer on starting. I think I can solve the problem, but I need to access to the system. By default ssh is unusable since no network is activated (notebook). The init level is 5 and it starts the freezing X. I tried