Oracle 的备用模式中的外键?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/12199349/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Foreign keys in alternate schemas with Oracle?
提问by Skulmuk
I have two schemas, let's call them BOB and FRED. I need to call a table in schema FRED from schema BOB to use the primary key in that table as a foreign key. I've set up the appropriate grants for schema FRED to allow BOB access to it, but whenever I run the script, it complains that I do not have the correct permissions. Is there another setting that I need to change somewhere? Can this even be done?
我有两个模式,我们称它们为 BOB 和 FRED。我需要从架构 BOB 调用架构 FRED 中的表,以将该表中的主键用作外键。我已经为架构 FRED 设置了适当的授权以允许 BOB 访问它,但是每当我运行脚本时,它都会抱怨我没有正确的权限。我需要在某处更改其他设置吗?这甚至可以做到吗?
My FK creation is as follows:
我的FK创作如下:
ALTER TABLE "BOB"."ITEMGROUP" WITH CHECK ADD CONSTRAINT FK_ITEMS_ITEM FOREIGN KEY (ItemID)
REFERENCES "FRED"."ITEMS"(ItemID)
And I'm doing the grant with:
我正在做赠款:
GRANT ALTER ON "FRED"."ITEMS" TO "BOB"
I get this error message:
我收到此错误消息:
SQL Error: ORA-01031: insufficient privileges
01031. 00000 - "insufficient privileges"
*Cause: An attempt was made to change the current username or password
without the appropriate privilege. This error also occurs if
attempting to install a database without the necessary operating
system privileges.
When Trusted Oracle is configure in DBMS MAC, this error may occur
if the user was granted the necessary privilege at a higher label
than the current login.
*Action: Ask the database administrator to perform the operation or grant
the required privileges.
For Trusted Oracle users getting this error although granted the
the appropriate privilege at a higher label, ask the database
administrator to regrant the privilege at the appropriate label.
回答by A.B.Cade
回答by Tony Andrews
To create a foreign key referencing a table in another schema you need the "REFERENCES" privilege:
要创建引用另一个模式中的表的外键,您需要“REFERENCES”权限:
GRANT REFERENCES ON FRED.ITEMS TO BOB;