Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.databases.oracle    |    Overblown overpriced overengineered SHIT    |    2,288 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 1,749 of 2,288    |
|    Bob Murphy to Ted    |
|    Re: Granting the privileges of existing     |
|    15 Sep 04 19:41:19    |
      From: murphytx@texas.net              Ted wrote:       > How do I grant all privileges for a schema that has a large number of       > existing tables, procedures, functions, etc to a newly created role,       > without having to issue a grant statement for each object and each       > privilege? I want the role to have all of the rights of the schema       > owner.       >       > Is there any kind of blanket granting of all privileges to a role?              -- Try something like:       rem This script performs dynamic granting of tables,views,sequences to       rem users/roles/PUBLIC. This script needs to be run as the owner       rem of the objects you are granting to.              rem s_user - List of users/roles to grant to. Can be comma seperated.              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 SELECT,INSERT,UPDATE,DELETE only to &s_user'       prompt              DECLARE        l_sql varchar2(254);        cursor_id integer;        result integer;               l_target_user varchar2(80) := '&s_user';              cursor get_tab is        select table_name from user_tables ;              cursor get_view is        select view_name from user_views;              cursor get_seq is        select sequence_name from user_sequences;              BEGIN              cursor_id:=dbms_sql.open_cursor;              /* Tables first */              FOR tab_rec in get_tab LOOP               l_sql := 'grant select,insert,update,delete on       '||tab_rec.table_name||' to '||l_target_user;        dbms_sql.parse(cursor_id,l_sql,1);        result := dbms_sql.execute(cursor_id);              END LOOP;              /* Views */              FOR view_rec in get_view LOOP               l_sql := 'grant select,insert,update,delete on       '||view_rec.view_name||' to '||l_target_user;        dbms_sql.parse(cursor_id,l_sql,1);        result := dbms_sql.execute(cursor_id);              END LOOP;              /* Sequences */              FOR seq_rec in get_seq LOOP               l_sql := 'grant select on '||seq_rec.sequence_name||' to       '||l_target_user;        dbms_sql.parse(cursor_id,l_sql,1);        result := dbms_sql.execute(cursor_id);              END LOOP;              dbms_sql.close_cursor(cursor_id);              END;       /              -- add loops for each type (e.g., packages, etc.)              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca