nob*_*ody 2 sql oracle ora-00942
我的应用程序在Oracle上有几个表,其中用户XYZ是架构所有者.使用XYZ创建表.我想让ABCUSER在这些表上拥有CRUD权限.我已经通过访问权限GRANT ALL ON TABLEABC to ABCUSER并且授予成功.
但是当这个用户(ABCUSER)尝试查询数据库(从TABLEABC中选择*)时,它似乎不起作用.我收到错误消息
ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
Error at Line: 1 Column: 14
Run Code Online (Sandbox Code Playgroud)
你能告诉我我错过了什么吗?
用户ABCUSER拥有该表的权限,但不拥有它.因此,您需要在查询中包含架构:
select * from XYZ.TABLEABC
/
Run Code Online (Sandbox Code Playgroud)
如果您不想在程序中对模式名称进行硬编码,则用户可以构建同义词:
create synonym TABLEABC for XYZ.TABLEABC
/
Run Code Online (Sandbox Code Playgroud)
然后原始查询将适用于ABCUSER.
请注意,ABCUSER将需要CREATE SYNONYM权限.
| 归档时间: |
|
| 查看次数: |
1234 次 |
| 最近记录: |