Logo

SQL Script

Dynamic Execute Granting

Tested on Oracle 8.0 Tested on Oracle 7.3

Updated : 30-March-2000
Version : 1.0

Description

This script performs dynamic granting of PROCEDURES/FUNCTIONS/PACKAGES to users/roles/PUBLIC. This script needs to be run as the owner of the objects you are granting to.

Parameters

s_user - List of users/roles to grant to. Can be comma seperated.

SQL Source

set verify off
set pause off
set doc off
set heading off

accept s_user prompt 'Enter USERNAME,ROLE, or PUBLIC to grant to : ' 
prompt
show user
prompt 'Granting EXECUTE only on PACKAGES,PROCEDURES,FUNCTIONS to &s_user'
prompt

DECLARE
	l_sql varchar2(254);
	cursor_id integer;
	result integer;

	l_target_user varchar2(80) := '&s_user';

cursor get_obj is
    select object_name from user_objects
    where object_type IN ('PACKAGE','FUNCTION','PROCEDURE');

BEGIN

cursor_id:=dbms_sql.open_cursor;

FOR obj_rec in get_obj LOOP

   l_sql := 'grant execute on '||obj_rec.object_name||' to '||l_target_user;
   dbms_sql.parse(cursor_id,l_sql,1);
   dbms_output.put_line(l_sql);
   result := dbms_sql.execute(cursor_id);

END LOOP;

dbms_sql.close_cursor(cursor_id);

END;
/

Return to Index of SQL Scripts


Home | Company Profile | Services | Contact Us | SQL scripts and tips | Quiz
Legal

Logo