Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Grant Select on all Tables Owned By Specific User

Tags:

oracle

I need to grant select permission for all tables owned by a specific user to another user. Can I do this with a single command along the lines of:

Grant Select on OwningUser.* to ReceivingUser 

Or do I have to generate the sql for each table with something along the lines of:

 Select 'GRANT SELECT ON OwningUser.'||Table_Name||'TO ReceivingUser'   From All_Tables Where Owner='OWNINGUSER' 
like image 830
Mark Roddy Avatar asked Oct 09 '08 15:10

Mark Roddy


1 Answers

Well, it's not a single statement, but it's about as close as you can get with oracle:

BEGIN    FOR R IN (SELECT owner, table_name FROM all_tables WHERE owner='TheOwner') LOOP       EXECUTE IMMEDIATE 'grant select on '||R.owner||'.'||R.table_name||' to TheUser';    END LOOP; END;  
like image 190
DCookie Avatar answered Oct 02 '22 17:10

DCookie