2011-06-01 23 views

回答

8

使用數據字典視圖dba_tables中(分別爲ALL_TABLES,如果您不能訪問DBA_TABLES):

declare 
    l_SQL varchar2(4000); 
begin 
    for cur in (
    select * from dba_tables where tablespace_name = 'mytablespace') 
    loop 
    l_sql := 'grant select, insert, update on ' || cur.owner || '.' || cur.table_name || ' to myuser'; 
    --dbms_output.put_line(l_SQL || ';'); 
    execute immediate l_SQL; 
    end loop; 
end; 

如果你只是想生成一個腳本,註釋掉立即執行並取消註釋dbms_output。

+1

謝謝你,那是我的工作。 – 2011-06-01 08:58:41

10

USE OF TABLESPACE不是記錄的選項,您是從哪裏找到的?

你可以做到這一點,以允許用戶在一個表空間中創建對象:

alter user username quota [amount] on mytablespace; 

授予SELECT,INSERT,UPDATE和對象刪除,你必須爲每個表單獨運行grant命令:

grant select, insert, update, delete on mytable1 to username; 
....