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 AMI 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 helpWell, 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
TomasWell, 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 Advancerefer 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 schemaHi,
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?
thanksFollowing 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
MarkWe 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
peterHello 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
SanjitPleast 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
-
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
-
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