我在表空间中有很多表,将近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