在特定表上授予create index

时间:2016-10-10 10:52:08

标签: sql oracle

我正在使用oracle并且我想创建一个属于另一个用户的特定表的索引,所以如何在不使用requete的情况下授予这样做的权限

grant create any index 

3 个答案:

答案 0 :(得分:2)

grant index on [tablename] to [user]

表所有者他/​​她自己必须具有哪些特权才能允许将表创建索引授予另一个用户取决于您的Oracle版本;查看文档。

答案 1 :(得分:0)

如果要首先在另一个模式中为表创建索引,则需要将系统特权授予要用于创建de index的用户。

  

要在另一个架构中创建索引,您必须拥有   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;

答案 2 :(得分: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;

我认为它应该有效。