首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >甲骨文dbms_redefinition在ora-01749上失败了,为什么?

甲骨文dbms_redefinition在ora-01749上失败了,为什么?
EN

Database Administration用户
提问于 2017-11-21 13:17:27
回答 1查看 685关注 0票数 0

作为重新定义表的一部分,我运行了这个

代码语言:javascript
复制
DECLARE
  l_num_ers PLS_INTEGER;
BEGIN
  DBMS_REDEFINITION.copy_table_dependents(
    uname             => 'myuser',
    orig_table        => 'mytable',
    int_table         => 'redef',
    copy_indexes      => DBMS_REDEFINITION.cons_orig_params, 
    copy_triggers     => TRUE, 
    copy_constraints  => TRUE, 
    copy_privileges   => TRUE, 
    ignore_errors     => FALSE,
    num_errors        => l_num_ers);
   DBMS_OUTPUT.put_line('l_num_ers=' || l_num_ers);
END;
/

得到了错误

代码语言:javascript
复制
ORA-01749: you may not GRANT/REVOKE privileges to/from yourself
ORA-06512: at "SYS.DBMS_REDEFINITION", line 752
ORA-06512: at "SYS.DBMS_REDEFINITION", line 1698

那我该怎么解决呢?相同的代码在另一个数据库上工作,我发现唯一的区别是用户myuser在表中没有select。

我做到了

代码语言:javascript
复制
Select PRIVILEGE, GRANTEE from dba_tab_privs where owner = 'MYUSER' and TABLE_NAME = 'MYTABLE';

找出不同之处。

是取消我自己对表的特权的解决方案吗?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2017-11-21 13:50:48

在您自己的表上拥有SELECT特权是不必要的。

在早期版本中,对您自己的对象授予特权会在字典中添加额外的行,并且它被认为是一个错误,在较新的版本中得到了修正。

本说明说明了这一点以及为什么重新定义失败的原因如下:

运行数据库管理系统时出错_REDEFINITION.COPY_表格_家属(医生ID 1345539.1)

撤销你自己对象上的特权。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/191397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档