ORA-01031:创建表的权限不足?

问题描述

我有模式X,在其中创建了表A,B,C。表A引用了表B和C。现在,按照我当前的要求,我需要将表A移至架构Y。我不想在这里更改表定义。

我正在尝试在架构Y中创建表A,但得到

ORA-01031:特权不足

要提供我已经运行的赠款

GRANT SELECT,INSERT,UPDATE,DELETE ON X.B TO Y; 
GRANT SELECT,DELETE ON X.C TO Y

仍然无法在架构Y中创建表A。我得到了

ORA-01031:特权不足

我被困在这里。请帮助我

解决方法

如果表A 引用表B和C(它们现在位于不同的架构中),我想您是在谈论外键约束。如果是这样,那么您授予的特权将无济于事。您需要授予 REFERENCES 特权,即

grant references on b to y;