2016-10-10 12 views

答えて

2
grant index on [tablename] to [user] 

。ドキュメントを確認してください。

+0

エラーメッセージがありませんでしたか、またはinvalide特権がありました。私はoracleを使用します10g –

+0

私の間違いは間違った構文でした。今すぐ修正 - 「作成」という言葉を削除しました。今すぐご利用いただけるかどうかお知らせください。 – mathguy

+0

それは働いた...ありがとう –

0

の場合を使用しなくてもそうする権限を付与するので、どのように他のユーザに属しています別のスキーマ内の表への索引を作成する場合は、最初に索引の作成に使用するユーザーにシステム権限を付与する必要があります。

別のスキーマで索引を作成するには、 のCREATE ANY INDEXシステム権限が必要です。

詳細参照:https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5010.htm

ここではSQL:

/*No tested*/ 
Grant create any index to user; 
0

は、テーブルの所有者のスキーマ内のプロシージャを作成します

create or replace 
procedure create_index(col_list varchar2, index_name varchar2) as 
begin 
execute immediate 'create index ' || index_name || ' on ' || 'PUT_TABLENAME_HERE'|| '(' || col_list || ')'; 
end; 

GRANT EXECUTE ON table_owner.create_index TO user; 

コール

begin 
table_owner.create_index('ID','IDX1'); 
end; 

私はそれがうまくいくと思います。彼/彼女自身が他のユーザにテーブルの上にインデックスを作成付与できるために持っている必要があり、テーブルの所有者は、Oracleのバージョンに依存しますどのような権限

関連する問題