Alter another schema procedures packages
Hi,
how to alter another schema stored procedure.. except alter any procedure privillege
SQL> alter procedure oe.getDBUSERByUserId compile;
alter procedure oe.getDBUSERByUserId compile
ERROR at line 1:
ORA-01031: insufficient privileges
Thanks
user2017273 wrote:
Hi,
how to alter another schema stored procedure.. except alter any procedure privillege
SQL> alter procedure oe.getDBUSERByUserId compile;
alter procedure oe.getDBUSERByUserId compile
ERROR at line 1:
ORA-01031: insufficient privileges
Thanksyou do not do so.
Similar Messages
-
How to execute another schema procedure from toad?
Hi,
i want to execute procedure from another schema from toad. already i have created synonym for that procedure and provided execute permission.
how to execute procedure from toad?
Thanks,Hi,
The vendor of that product is running their own forums
http://toadfororacle.com/index.jspa
Not sure how they feel about
Handle: user2017273
Status Level: Newbie
Registered: Oct 4, 2009
Total Posts: 64
Total Questions: 44 *(36 unresolved)* -
VIew of Package body in another schema in EA 3.0
I would like the ability in SQL Developer to view the package body of another schema with the CREATE ANY PRIVILGE.
For instance, in TOAD you can grant access to DBA_SOURCE or SELECT_CATALOG_ROLE and then be able to view another schema's package body.
This is long overdue without having to log into that schema or granting CREATE ANY PRIVILEDGE to user.
This one is really needed"CREATE ANY PRIVILEGE" is irrelevant to the ability of viewing the source owned by other users.
Please provide exact script for creating a user, which is able to see the code, say in HR schema, via the query
select * from all_source
where owner = 'HR'
and yet missing the nodes in the OtherUsers->Packages->PKG_A->PKG_A Body in the navigator. -
Scenerio:
User A owns a procedure
called 'TESTPROCEDURE'.
User B has execute privilege on 'TESTPROCEDURE';
Now i want to give user
B , alter procedure privilege for only one procedure i.e 'TESTPROCEDURE';
I do not want to give
ALTER ANY PROCEDURE to user B since the user just wants to alter only 1
procedure.
How can we do that?
Thanks & regards,
Mohd Shahid Shaikh.Why do you want to do this?
If I'm allowed to alter a procedure, I can alter it to do something completely different. I can modify the procedure to do anything that B can do. If that's what you want to allow, why not just log in as A?
There is no way to grant B the ability to alter a single procedure. You could, I suppose, create another procedure in A that accepts a DDL statement as a string, checks to see if it meets your criteria, and then executes it. You could then grant B the ability to execute this new procedure. A could then send an appropriate CREATE OR REPLACE PROCEDURE statement to the new procedure that replaces TestProcedure. But that's a fair amount of effort and complexity to deal with (particularly when there are errors)-- if you can explain the underlying business problem, we may be able to help you come up with alternate technical solutions.
Justin -
Calling PL/SQL Procedure In Another Schema Gives Unexpected Result
I have a SQL Script that does this:
conn pnr/<password for user pnr>;
set serveroutput on;
exec vms.disable_all_fk_constraints;
SELECT owner, constraint_name, status FROM user_constraints WHERE constraint_type = 'R';
and the disable_all_fk_constraints procedure that is owned by user 'vms' is defined as:
create or replace
procedure disable_all_fk_constraints is
v_sql VARCHAR2(4000);
begin
dbms_output.put_line('Disabling all referential integrity constraints.');
for rec in (SELECT table_name, constraint_name FROM user_constraints WHERE constraint_type='R') loop
dbms_output.put_line('Disabling constraint ' || rec.constraint_name || ' from ' || rec.table_name || '.');
v_sql := 'ALTER TABLE ' || rec.table_name || ' DISABLE CONSTRAINT ' || rec.constraint_name;
execute immediate(v_sql);
end loop;
end;
When I run the SQL script, the call to vms.disable_all_fk_constraints disables the FK constrains in the 'vms' schema, whereas I wanted it to disable the FK constraints in the 'pnr' schema (the invoker of the procedure). I know that I could make this work by copying the disable_all_fk_constraints procedure to the 'pnr' schema and calling it as "+exec disable_all_fk_constraints;+" from within the SQL script but I want to avoid having to duplicate the PL/SQL procedure in each schema that uses it.
What can I do?
Thank youYou have two issues to solve.
First you need to write a packaged procedure that works with INVOKER rights. The default is DEFINER rights.
The difference is excatly what you need. Usually the package has the rights from the schema where it is defined (=Definer rights). In your case schema VMS. Whereas you need the privileges from the user that calls the package (PNR).
=> Check out the documentation for INVOKER rights
The second problem is that the view "user_constraints" will not give the results you expect when called from inside a procedure in another schema. An alternative could be to use the view DBA_CONSTRAINTS with a filter on the owner (where owner = 'PNR'). Not sure if there are other working possibilities. Well you could create a list of constraint names that you want to disable, instead of creating the list dynamically.
And you could have another potential disaster creeping up upon you. If you run this thing, then at this moment you don't have any referential integrity anymore. You can't be sure that you can create the FKs again after this action. This is EXTREMLY DANGEROUS. I would never ever do this in any kind of production or test database. I would be very careful when I do it on a development database. -
View package body in another schema
I have developers who want to view the code in the package body in another's schema.
I know select text from all_source/ user_source works only for packages in your own schema.
Granting system privelege 'create any procedure' allows the developer to view as well as update priveleges.
As the owner of the objects what grants do I need to give to developers so that they can only view the code.You can grant select_catalog_role permissions to your developers. This will give your developers select access to all of the V$ views and DBA_% views. Then they can view the dba_source table to view other schema's package code..
Regards,
David -
Create package in another schema (10gR2)
Hi there,
I'm trying to create a package in another schema, but I am getting an error when I do this.
My script is as follow:
i log in as user rwn.
create or replace package mkw.test
as
procedure t;
end mkw.test;
create or replace package body mkw.test
as
procedure t as
begin
..... code
end;
end mkw.test;
I get the error: PLS-00103: Symbool "." aangetroffen terwijl een van de volgende
werd verwacht:
What am I doing wrong?
Thanks in advance.user10674103 wrote:
Hi there,
I'm trying to create a package in another schema, but I am getting an error when I do this.
My script is as follow:
i log in as user rwn.
create or replace package mkw.test
as
procedure t;
end mkw.test;
create or replace package body mkw.test
as
procedure t as
begin
..... code
end;
end mkw.test;
I get the error: PLS-00103: Symbool "." aangetroffen terwijl een van de volgende
werd verwacht:
What am I doing wrong?
Thanks in advance.Assuming you have permission to create packages in the other schema?
Are you running this through SQL*Plus? If so, you really need to have "/" terminators after each object you are creating...
e.g.
create or replace package mkw.test
as
procedure t;
end mkw.test;
create or replace package body mkw.test
as
procedure t as
begin
..... code
end;
end mkw.test;
/ -
How do I view package bodies in another schema ?
For purposes of SOX and security/audit control, we log in under our network id's in our production environment. We have sourcecode compiled into Oracle seeded schemas ( APPS ) so that scheduled jobs are able to run with submitted from the Oracle Applications environment. We don't compile code into our personal network account areas.
I know how to GRANT EXECUTE privs so that we can execute a package in another schema, but what I want to do is to be able to view the sourcecode in another schema. Compile into APPS but be able to see the package body from my network id schema account.
I can't seem to find what the correct permission is anywhere. Granted I can look at DBA_SOURCE to get to it, but I want to use a tool like SQL Developer or TOAD to look at the code in a more presentable and easier to debug manner.
Any help ?I did some more searching on the forum... seems its already a request... TOAD gives access to DBA_Views to resolve the issue... SQL Developer has not integrated that functionality yet, but forum entries seem to indicate that it is on the horizon.
Thanks for responding though.
~Barry -
Snapshots refresh from package from another scheme
*Also posted to Database:General!
Hi all,
i have a trouble while refreshing snapshots.
First, i have a scheme where a package (for snapshots
update) and snapshots themselves reside:
package snp_update
procedure update_snapshots
is
begin
for s_name in ( SELECT owner, name
FROM user_snapshots )
loop
dbms_snapshot.refresh (s_name.owner || '.' ||
s_name.name, 'CA');
end loop;
end;
end;
Second, i have a scheme where reside only synonym to
snp_update package (synonym name is syn_snp_update) and
this scheme have granted 'execute' privilege on snp_update.
But when i try to use it as
begin
syn_snp_update.update_snapshot;
end;
i have error: ORA-01031: insufficient privileges.
But when i execute this pl/sql block from package
owner's scheme - everything ok.
Oracle: 8.0.5 on Sun Solaris 2.5
Plz, help me.
Maksym.How has your schema been granted the rights on SYN_SNP_UPDATE? A common cause of this problem is that the rights have been granted to a role. Oracle does not allow you to build procedures, etc using objects that you have been granted through a role. If this is the case you'll have to grant EXECUTE on SYN_SNP_UPDATE to your schema explicitly.
Cheers, APCThrough
grant execute on snp_update <synonym's owner schema>;
BTW: Package's procedure is executing. Cursor (select ... from user_snapshots) retrieves first snapshot info in package's scheme and call to dbms_snapshot.refresh generates error. -
Another schema reference in a stored procedure
Hello -
I need to call a stored procedure from another stored procedure in a different schema. Can this be done?
For example:
I am logged on as USER1 and I try to call these stored procedures from within a stored procedure:
DO_STUFF (works - within one schema)
USER2.DO_STUFF (does not compile)
INSERT INTO USER2.SOME_TABLE VALUES(...) (does not run -table does not exist)
Thanks!
PeterVinay,
Spend some time online to read and search about your problem before blindly posting it on forum, if you would have done that you could have found out eaisly below two links which will explain you in deep
http://stackoverflow.com/questions/3682821/difference-between-varchar500-vs-varcharmax-in-sql-server
http://sqlhints.com/2013/03/10/difference-between-sql-server-varchar-and-varcharmax-data-type/
Please mark this reply as answer if it solved your issue or vote as helpful if it helped so that other forum members can benefit from it
My Technet Wiki Article
MVP -
Calling a procedure that exist in another schema
hello , i need your help .
i would like to know how i can call a procedure that exist in another schema
what i did for example calling the procedure "proc" at schema "user1" from pl/sql code
begin
user1.proc(parm1,parm2);
end;
i got the error message
(1): PLS-00201: identifier 'user1.proc' must be declared
(2): PL/SQL: Statement ignored
but by calling it from SQL PLUS from the same current schema i got no errors
exec user1.proc(parm1,parm2);
thank youAssuming that the call that is failing is located in a stored procedure or stored function, the problem is likely that your user's access to the user1.proc procedure is via a role and privileges granted through a role cannot be used in a definer's rights stored procedure or stored function.
You can verify this by disabling roles in your SQL*Plus session. If you do
SQL> set role none
SQL> exec user1.proc( p1, p2 );I would expect that you'll get the same error that you get in your stored procedure. Assuming that is the case, you'll need to ask the DBA to grant your user EXECUTE access on user1.proc directly not via a role.
Justin -
Grant permission to another's schema's package
Dear buddies,
I want to give access to another user to access a package in my schema.
How should I be doing it?
I saw in this page but how to refer to the different schema the package is residing?
http://www.techonthenet.com/oracle/grant_revoke.php
Please guide me.
Thank You.
Nithuser645399 wrote:
Dear buddies,
I want to give access to another user to access a package in my schema.
How should I be doing it?
I saw in this page but how to refer to the different schema the package is residing?
http://www.techonthenet.com/oracle/grant_revoke.php
Please guide me.
Thank You.
NithDear Nith
Here's the command:
grant execute on your_schema.your_package to the_second_user;Kamran Agayev A.
Oracle ACE
My Oracle Video Tutorials - http://kamranagayev.wordpress.com/oracle-video-tutorials/ -
How can i access all the objects of one schema from another schema
Dear All,
How can i access all the objects(Tables,Views,Triggers,Procedures,Functions,Packages etc..) and do the modifications of one schema from another schema (Without using synonyms concept).
Thanks in advance,
MahiFirst of all, synonyms only help you easy reference the object. It doesn't have any implication of object privilege.
As long as you have proper privilege on target object. You can access it with or without synonyms.
Assuming you have proper privilege of objects, you can use following command to assume schema owner.
ALTER SESSION SET CURRENT_SCHEMA = Schema_owner -
Granting Read Only Access to user in another schema
Oracle Database 10g
Red Hat Enterprise Linux Server release 5.3
We are requested by a developer to grant his account read only access to TABLES, VIEWS, INDEXES, SEQUENCES, FUNCTIONS, PROCEDURES, PACKAGES, TRIGGERS, JOBS of another schema.
I know granting read only access to Tables and Views. But is it possible to grant READ ONLY access to other mentioned objects ? How to do it ?
And some views are in INVALID status.
I tried to compile them using alter view owner.viewname compile;
But got this ---- Warning: View altered with compilation errors.
Those views are still in INVALID status. And then I tried to use utlrp.sql . Same result.
Then I used the following
SELECT TEXT FROM DBA_VIEWS WHERE VIEW_NAME='view-name';
select REFERENCED_NAME,REFERENCED_TYPE from dba_dependencies where name='view-name';
It turns out some reference types are non existent.
Does that mean DBAs cannot do anything about this ?Nilton wrote:
We are requested by a developer to grant his account read only access to TABLES, VIEWS, INDEXES, SEQUENCES, FUNCTIONS, PROCEDURES, PACKAGES, TRIGGERS, JOBS of another schema.
I know granting read only access to Tables and Views. But is it possible to grant READ ONLY access to other mentioned objects ? How to do it ?
TABLES -> YES grant SELECT
VIEWS -> YES grant SELECT
SEQUENCE -> YES grant SELECT
INDEXES -> There is no read access for indexes...indexes are put on tables and a user who has read access on tables can read the index as well.
FUNCTIONS / PROCEDURES / PACKAGES -> I am not sure what you mean by read access on procedures, functions and packages. You may grant EXECUTE privilege on these.
TRIGGERS -> there is no read access on triggers required. They are implemented on tables for a DML event. If the user has DML access he has the execute access on the trigger as well.
JOBS -> I am not sure what to read from Jobs.
And some views are in INVALID status.
I tried to compile them using alter view owner.viewname compile;
But got this ---- Warning: View altered with compilation errors.
Those views are still in INVALID status. And then I tried to use utlrp.sql . Same result.
Then I used the following
SELECT TEXT FROM DBA_VIEWS WHERE VIEW_NAME='view-name';
select REFERENCED_NAME,REFERENCED_TYPE from dba_dependencies where name='view-name';
It turns out some reference types are non existent.
Does that mean DBAs cannot do anything about this ?There are compilation errors in the Views. e.g. the view may be referring to a table which doesn't exist etc.
Unless you fix the error in the view you can't compile it and male it valid. Fix the view errors. If objects are non existing create them or refer to view to some where else.
If the nonexistent objects were mistakenly dropped, or the data file which contained those objects was dropped, no matter what was the reason for that object to be gone a DBA can bring it back if he is a well prepared DBA and has setup his database for such kind of disasters.
Now tell us why those objects are non-existent ? were they meant to be gone ? or they were dropped mistakenly?
Now here are my guesses:
If they were meant to be gone then probably the views definitions need to be adjusted not to refer them anymore.
If they were mistakenly dropped then:
Do you have them in recyclebin? (only tables) if YES just FLASHBACK TABLE <<tablename>> AS BEFORE DROP.
Is your database has Flashback database ON? if YES FLASHBACK DATABASE until 'time/scn just before the object was dropped'
Do you have backups and your database is running in ARCHIVE LOG mode? if YES perform an incomplete recovery using RMAN. -
How to change the owner of a Procedure/Packages
Hi,
I am having around 200 procedures and packages under a schema emp. I want to move all the procedure and packages to another schema(admin) which is a new schema, including the privileges for emp schema.
How to do that ? Please help me.
Regards
MurugesanI agree that could be easier. The one thing I remember facing problem with that was object references within the package used as <schema_name>.<object_name> which had issues when imported to some other schema (different than the source schema) since those objects were not accessible.
Maybe you are looking for
-
BW Bex query and Webi question
Hi All. Just a quick question on Bex queries. We are selecting a Bex query as a source for universe. However on the webi side we only want to see a subset of the data. 1) The question is Would this rerun the entire BEX query on the BW side ? Or is th
-
Hard drive detected but will not boot Windows Vista or recovery disk
Hi, I have a very similar issue with a HP Pavillion a6355.uk, the hard drive kept crshing windows and then it finally just kept getting pass the HP boot menu options, and then all I get is the DOS "@press ctrl+alt+del to restart". The hard drive is d
-
Control Timeline and FLV Together
HI, Where can I find ready-made buttons that will control an FLV and a timeline together? I have a swf with an FLV and I animate images and phrases on a movieClip timeline timed to what they say in the flv. I set up cuepoints that trigger the animati
-
Quality lot generation through PI sheet
Hi, I have the following requirement: In the PI sheet I need to confirm an operation and which in turn would generate a inprocess inspection lot. In that lot I need to do a result recording. Every step is to be carried out through PI sheet. Can anybo
-
Changing iCloud apple I'd to match new apple id
I changed my Apple ID in iTunes but iCloud was not updated with the new ID. Can't find a place on. My I-Pad to change the iCloud Apple ID. Am I an idiot? Please help...