我使用了以下查询:
CREATE OR REPLACE VIEW User1.NewView (Column1) AS
SELECT DISTINCT Column1 FROM User2.Table
我收到以下错误:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
要解决此问题,我必须在User2.Table上授予对User1的select访问权限。有没有办法在不必授予访问权限的情况下执行此操作,因为我已经以dba身份登录了?谢谢你们!
答案 0 :(得分:11)
是的,您已经(并且应该始终)明确授予对其他架构中对象的访问权限。
GRANT SELECT ON user2.table TO user1
虽然您以“dba帐户”(SYS,我假设)登录,但CREATE语句专门用于user1架构。
答案 1 :(得分:8)
您可以创建或替换强制视图...
即使缺少权限,也会创建视图,但除非授予权限,否则视图将无法使用。如果以后授予权限(例如在某些自动构建脚本中),这是一个非常有用的解决方案。
答案 2 :(得分:0)
可能是因为您无法访问表格或视图
查询 向用户授予对象权限;