テーブルスペースに多くのテーブルがあり、100 近くあります。これらすべてのテーブルに対する選択、挿入、更新の権限をユーザーに付与する必要があります。出来ますか?私が書くとき:
GRANT USE OF TABLESPACE MYTABLESPACE TO USERNAME
「権限が無効または欠落しています」というOracleエラーが表示されます
テーブルスペースに多くのテーブルがあり、100 近くあります。これらすべてのテーブルに対する選択、挿入、更新の権限をユーザーに付与する必要があります。出来ますか?私が書くとき:
GRANT USE OF TABLESPACE MYTABLESPACE TO USERNAME
「権限が無効または欠落しています」というOracleエラーが表示されます
USE OF TABLESPACE
文書化されたオプションではありません。どこで見つけましたか?
これを行うと、ユーザーがテーブルスペースにオブジェクトを作成できるようになります。
alter user username quota [amount] on mytablespace;
オブジェクトの選択、挿入、更新、および削除を許可するには、grant
テーブルごとに個別のコマンドを実行する必要があります。
grant select, insert, update, delete on mytable1 to username;
....
データ ディクショナリ ビュー dba_tables (dba_tables にアクセスできない場合は all_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;
スクリプトを生成するだけの場合は、execute immediately をコメントアウトし、dbms_output のコメントを外します。