Oracle给某个用户访问所有表的权限


工作总结:在Oracle下给某个用户授予访问本用户下所有表的权限。

例如:把scott用户下的所有表的查询权限授予T用户。

  1. create or replace procedure grant_selectAll_sql as  
  2.       The_c1          Integer;   
  3.       The_result      number;   
  4.       v_Table     varchar2(80);   
  5.       v_sql       varchar2(400);   
  6.     Begin  
  7.       The_C1 :=Dbms_sql.open_cursor;   
  8.       Dbms_sql.parse(the_C1,'Select table_name From User_Tables',dbms_sql.native);   
  9.       Dbms_sql.define_column(the_c1,1,v_Table,80);   
  10.       The_result:=Dbms_sql.execute(The_c1);   
  11.      loop   
  12.       If dbms_sql.fetch_rows(The_c1) > 0 then  
  13.          Dbms_sql.column_value(The_c1,1,v_Table);   
  14.                
  15.          v_sql := 'Grant Select On '||v_Table||' to T';   
  16.          Execute Immediate v_sql;   
  17.             
  18.       else  
  19.         exit;   
  20.       End if;   
  21.      end loop;   
  22.       Dbms_sql.close_cursor(The_C1);   
  23. End;  

相关内容