授予执行权

时间:2016-02-22 16:16:54

标签: oracle grant

我想将分区添加到现有表中。因此,我遵循了example.

尝试:

grant execute on dbms_redefinition to USER

Oracle返回以下错误:

Error starting at line 13 in command:
grant execute on dbms_redefinition to USER
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 -  "table or view does not exist"
*Cause:    
*Action:

为什么会这样?它有解决方法吗?

1 个答案:

答案 0 :(得分:2)

首先,您需要以SYSDBA身份登录,以授予用户对该程序包的执行权限。

其次,请注意,要使dbms_redefinition正常工作,用户还需要以下权限:

ALTER ANY TABLE
CREATE ANY TABLE
DROP ANY TABLE
LOCK ANY TABLE
SELECT ANY TABLE

并且,根据目标表,您可能还需要:

CREATE ANY INDEX
CREATE ANY TRIGGER

这些是授予用户的非常强大的权利,因此您可能希望在完成需要完成的操作后撤消它们。使用此包is here

的另一个好例子