我在表空間中有很多表,將近100個。我必須將所有這些表的Select,Insert,Update權限授予給用戶。可能嗎?當我寫:授予選擇,插入,更新到一個表空間
GRANT USE OF TABLESPACE MYTABLESPACE TO USERNAME
我得到Oracle錯誤 「無效或丟失的特權」
我在表空間中有很多表,將近100個。我必須將所有這些表的Select,Insert,Update權限授予給用戶。可能嗎?當我寫:授予選擇,插入,更新到一個表空間
GRANT USE OF TABLESPACE MYTABLESPACE TO USERNAME
我得到Oracle錯誤 「無效或丟失的特權」
使用數據字典視圖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。
USE OF TABLESPACE
不是記錄的選項,您是從哪裏找到的?
你可以做到這一點,以允許用戶在一個表空間中創建對象:
alter user username quota [amount] on mytablespace;
授予SELECT,INSERT,UPDATE和對象刪除,你必須爲每個表單獨運行grant
命令:
grant select, insert, update, delete on mytable1 to username;
....
謝謝你,那是我的工作。 – 2011-06-01 08:58:41