向其他用户创建FK时,Oracle表或视图不存在

向其他用户创建FK时,Oracle表或视图不存在,oracle,Oracle,我有3个用户,A,B,C。A是dba。我使用用户A登录到sqlDeveloper 我创建了用户B,并添加了一个表“B”。“USERS” 我创建了用户C,并添加了一个表“C”。“SESSIONS” 这些都很好 然后我尝试添加一个FK,如下所示: 更改表“C”。“会话”添加约束“FK_会话”外键(“LOCKEDBYUSERTOKEN_ID”)引用“B”。“用户”(“ID”) 我得到一个“表或视图不存在”错误 我认为,如果用户A是dba,它可以跨用户和模式创建视图和约束。我需要做什么才能使其工作?即使

我有3个用户,A,B,C。A是dba。我使用用户A登录到sqlDeveloper

我创建了用户B,并添加了一个表“B”。“USERS”

我创建了用户C,并添加了一个表“C”。“SESSIONS”

这些都很好

然后我尝试添加一个FK,如下所示:

更改表“C”。“会话”添加约束“FK_会话”外键(“LOCKEDBYUSERTOKEN_ID”)引用“B”。“用户”(“ID”)

我得到一个“表或视图不存在”错误


我认为,如果用户A是dba,它可以跨用户和模式创建视图和约束。我需要做什么才能使其工作?

即使用户A具有DBA权限,当您在表C.SESSIONS上创建约束时,它会尝试将B.USERS读取为用户C。您需要将B.USERS上的select权限授予用户C。

基于此链接,您需要向用户添加外键约束。有关更多信息,请参阅此链接: