【发布时间】:2011-09-06 02:29:42
【问题描述】:
我在一个表空间中有很多表,将近 100 个。我必须将所有这些表的 Select、Insert 和 Update 权限授予用户。可能吗?当我写:
GRANT USE OF TABLESPACE MYTABLESPACE TO USERNAME
我收到 oracle 错误“无效或缺少特权”
【问题讨论】:
标签: oracle select insert grant tablespace
我在一个表空间中有很多表,将近 100 个。我必须将所有这些表的 Select、Insert 和 Update 权限授予用户。可能吗?当我写:
GRANT USE OF TABLESPACE MYTABLESPACE TO USERNAME
我收到 oracle 错误“无效或缺少特权”
【问题讨论】:
标签: oracle select insert grant tablespace
USE OF TABLESPACE 没有记录在案的选项,您在哪里找到的?
您可以这样做以允许用户在表空间中创建对象:
alter user username quota [amount] on mytablespace;
要授予对对象的选择、插入、更新和删除权限,您必须为每个表运行单独的grant 命令:
grant select, insert, update, delete on mytable1 to username;
....
【讨论】:
使用数据字典视图 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。
【讨论】: